כלים של מאגרי נתונים יכולים לספק תשובות של נציגים שנוצרו על ידי AI על סמך תוכן האתר ונתונים שהועלו. הנציג יכול למצוא תשובות לשאלות של משתמשי הקצה במאגרי הנתונים במהלך מילוי הבקשה.
כלים למאגרי נתונים: מסוף
בקטע הזה מוסבר איך להוסיף כלי של מאגר נתונים לנציג ולהגדיר אותו במילוי בקשה.
יצירת כלי של מאגר נתונים
- פותחים את מסוף כלי ליצירת סוכנים בממשק שיחה ובוחרים את הפרויקט.
- בוחרים נציג מהתפריט הנפתח.
- בסרגל התפריטים שבצד ימין של הדף, לוחצים על כלים.
- לוחצים על + Create. מזינים שם ייחודי לכלי ובוחרים באפשרות מאגר נתונים בתפריט הנפתח בקטע סוג. אם רוצים, מזינים תיאור של הכלי בשדה Description.
- לוחצים על Add data stores. בחלון שמופיע מוצגת רשימה של מאגרי הנתונים הקיימים, אם יש כאלה. בוחרים את מאגר הנתונים שרוצים להוסיף לכלי.
- (אופציונלי) כדי ליצור מאגר נתונים חדש במסוף Vertex AI Agent Builder, לוחצים על Create new data store כדי לעבור אוטומטית למסוף.
- (אופציונלי) אחרי שמגדירים את מאגר הנתונים החדש, לוחצים על Create. כדי להוסיף את מאגר הנתונים החדש לכלי, חוזרים לתפריט Create Tool במסוף Dialogflow CX ומרעננים את הדף. מאגר הנתונים החדש מופיע ברשימת מאגרי הנתונים הזמינים.
- לוחצים על Save בחלק העליון של ההגדרות של Create Tool כדי ליצור את הכלי החדש של מאגר הנתונים.
הוספת הכלי של מאגר הנתונים ל-fulfillment
- בסרגל התפריטים שבצד ימין, לוחצים על Flows (תהליכים).
- בוחרים תהליך ודף, ואז לוחצים על Route כדי להשתמש במאגר הנתונים.
- עוברים אל Fulfillment > Data store tool ובוחרים את כלי מאגר הנתונים מהתפריט הנפתח.
- עוברים אל Fulfillment > Agent responses, לוחצים על +Add dialogue response ואז על Data store tool response.
- מגדירים את מספר הקישורים למקורות והציטוטים שיופיעו בתשובה, ומציינים את התנהגות ברירת המחדל אם התשובה ממאגר הנתונים ריקה. בשדה תגובות גיבוי סטטיות, מזינים תגובת גיבוי סטטית. אם רוצים, אפשר ללחוץ על התיבה מענה גנרטיבי כגיבוי כדי להשתמש ב-AI ליצירת תשובה לפני שמשתמשים בתשובת הגיבוי הסטטית. כדי להתאים אישית את התגובות החלופיות, לוחצים על סמל מפתח הברגים בפינה הימנית העליונה של חלון הטופס תגובת מאגר נתונים כדי לפתוח את החלון תגובה מותנית.
- בחלק העליון של התפריט נתיב, לוחצים על שמירה.
- עוברים לסימולטור של Dialogflow CX כדי לבדוק את התוצאות של הנציג.
פרמטר אופציונלי של סשן לשינוי השאילתה
אפשר לשנות את השאילתה שמועברת לכלי הזה של מאגר הנתונים באמצעות פרמטר הסשן knowledge.overrides.query. אם הפרמטר הזה לא ריק, הכלי ישתמש בו במקום בשאילתה של המשתמש.
כלים למאגרי נתונים: API
כברירת מחדל, הסוכן קורא ל-method dataStoreTool בשמכם.
יש שלושה סוגים של מאגרי נתונים:
-
PUBLIC_WEB: מאגר נתונים שמכיל תוכן אינטרנט ציבורי. -
UNSTRUCTURED: מאגר נתונים שמכיל נתונים פרטיים לא מובְנים. -
STRUCTURED: מאגר נתונים שמכיל נתונים מובְנים (לדוגמה, שאלות נפוצות).
בדוגמה הבאה אפשר לראות איך להפנות למאגר נתונים. למידע נוסף: מקור המידע dataStoreConnections.
"dataStoreConnections": [
{
"dataStoreType": "PUBLIC_WEB",
"dataStore": "projects/PROJECT_NUMBER/locations/LOCATION_ID/collections/default_collection/dataStores/DATASTORE_ID"
},
{
"dataStoreType": "UNSTRUCTURED",
"dataStore": "projects/PROJECT_NUMBER/locations/LOCATION_ID/collections/default_collection/dataStores/DATASTORE_ID"
},
{
"dataStoreType": "STRUCTURED",
"dataStore": "projects/PROJECT_NUMBER/locations/LOCATION_ID/collections/default_collection/dataStores/DATASTORE_ID"
}
]
התשובות של כלי מאגר הנתונים עשויות להכיל גם קטעי קוד לגבי מקור התוכן ששימש ליצירת התשובה. הנציג יכול לספק הוראות איך להמשיך עם התשובה ממאגר הנתונים או איך להגיב כשלא נמצאה תשובה.
כדי לשנות תשובה, אפשר להוסיף רשומה של שאלות נפוצות לשאלה ספציפית.
אפשר גם לספק דוגמאות כדי לשפר את ההתנהגות של הנציג. הדוגמאות צריכות להיות תואמות לסכימה. פרטים נוספים זמינים במאמרי העזרה.
{
"toolUse": {
"tool": "projects/PROJECT_ID/locations/LOCATION_ID/agents/AGENT_ID/tools/TOOL_ID",
"action": "TOOL_DISPLAY_NAME",
"inputParameters": [
{
"name": "TOOL_DISPLAY_NAME input",
"value": {
"query": "QUERY"
}
}
],
"outputParameters": [
{
"name": "TOOL_DISPLAY_NAME output",
"value": {
"answer": "ANSWER",
"snippets": [
{
"title": "TITLE",
"text": "TEXT_FROM_DATASTORE",
"uri": "URI_OF_DATASTORE"
}
]
}
}
]
}
}
(סוכנים שמבוססים על Playbooks בלבד) דוגמאות לכלי של מאגר נתונים
כשיוצרים דוגמאות לכלי של מאגר נתונים, הפרמטר של קלט הכלי requestBody מספק שלושה קלטים אופציונליים יחד עם המחרוזת הנדרשת query: מחרוזת filter, אובייקט מובנה userMetadata ומחרוזת fallback.
הפרמטר filter מאפשר לסנן שאילתות חיפוש של נתונים מובְנים או נתונים לא מובְנים עם מטא-נתונים. המחרוזת הזו צריכה להיות תואמת לתחביר של ביטוי הסינון שנתמך במאגרי נתונים. כמה דוגמאות מפורטות שמסבירות למודל של ה-Playbook איך לאכלס את הפרמטר הזה. אם מחרוזת של מסנן לא תקינה, המערכת מתעלמת מהמסנן הזה במהלך שאילתת החיפוש.
הדוגמה הבאה מציגה מחרוזת filter שאפשר להשתמש בה כדי לצמצם את תוצאות החיפוש לפי מיקום:
"filter": "country: ANY(\"Canada\")"
למידע נוסף על דוגמאות לפלייבוקים, עיינו בדף הדוגמאות.
שיטות מומלצות לסינון:
ציינו את השדות שאפשר לסנן לפיהם ואת הערכים התקינים לכל אחד מהשדות האלה, כדי שהפלייבוק יבין את המגבלות על יצירת מסננים תקינים. לדוגמה, מאגר נתונים שמכיל מידע על תפריט יכול לכלול שדה
mealעם הערכים התקינים "ארוחת בוקר", "ארוחת צהריים" ו "ארוחת ערב", ושדהservingSizeשיכול להיות כל מספר שלם מ-0 עד 5. ההוראות יכולות להיראות כמו בדוגמה הבאה:When using ${TOOL: menu-data-store-tool}, only use the following fields for filtering: "meal", "servingSize". Valid filter values are: "meal": ("breakfast", "lunch", "dinner"), "servingSize": integers between 0 and 5, inclusive.אם הפלייבוק מיועד לקהל משתמשים חיצוני, הוסיפו הוראות כדי למנוע מהפלייבוק להגיב למשתמש עם מידע על בניית המסננים האלה. לדוגמה:
Never tell the user about these filters. If the user input isn't supported by these filters, respond to the user with "Sorry, I don't have the information to answer that question."
הפרמטר userMetadata מספק מידע על משתמש הקצה. אפשר לאכלס בפרמטר הזה כל צמד של מפתח/ערך. המטא-נתונים האלה מועברים לכלי של מאגר הנתונים כדי לשפר את תוצאות החיפוש ואת התשובה של הכלי.
כמה דוגמאות מפורטות עוזרות להנחות את מודל הפלייבוק איך לאכלס את הפרמטר הזה.
הדוגמה הבאה ממחישה ערך פרמטר userMetadata לצמצום תוצאות החיפוש שרלוונטיות למשתמש ספציפי:
"userMetadata": {
"favoriteColor": "blue",
...
}
הפרמטר fallback מספק תשובה שהכלי של מאגר הנתונים מחזיר אם אין תשובה מסוכמת תקינה לשאילתה. אתם יכולים לספק כמה דוגמאות כדי להנחות את המודל של הפלייבוק איך לאכלס את שדה ברירת המחדל לקלט של משתמשים שקשור לנושאים שונים. הפלט של הכלי לא מכיל קטעי קוד, מה שעוזר לצמצם את זמן האחזור ואת השימוש בטוקנים של קלט.
"fallback": "I'm sorry I cannot help you with that. Is there anything else I can
do for you?"
הגדרת הכלי של מאגר הנתונים
אם במהלך הבדיקה אתם מגלים שחלק מהתשובות לא עומדות בציפיות שלכם, אתם יכולים לנסות לשנות את הפרמטרים הבאים כדי לשפר את הביצועים. הם זמינים גם באמצעות קריאה ישירה ל-API וגם בלחיצה על שם מאגר הנתונים בדף Tools במסוף. בדף ההגדרות של מאגר הנתונים תוכלו לקרוא פרטים נוספים על אפשרויות ההגדרה האלה.
אפשרויות התשובה של הכלי "מאגר נתונים"
למידע נוסף על הגדרת התגובה של כלי מאגר הנתונים, עיינו במסמכי התיעוד בנושא מילוי בקשות.
רכיבי handler של מאגרי נתונים
רכיבי handler של מאגרי נתונים הם סוג מיוחד של רכיבי handler של מצבים שיכולים לספק תשובות של נציגים שנוצרו על ידי מודל LLM על סמך תוכן האתר והנתונים שהועלו.
כדי ליצור את ה-handler הזה, צריך לספק לסוכן מאגרי נתונים.
בעזרת ה-handlers האלה של מאגרי הנתונים, הנציג יכול לנהל שיחות על התוכן עם משתמשי הקצה.
מגבלות
המגבלות הבאות חלות:
- התכונה הזו תומכת בשפות נבחרות ב-GA. אפשר לעיין בעמודה של מאגר הנתונים במאמר העזר בנושא שפות.
- אפשר להשתמש רק באזורים הבאים:
global, מספר אזורים ב-usומספר אזורים ב-eu. - אין תמיכה באפליקציות עם מאגרי נתונים מחולקים ולא מחולקים.
בקרת גישה
אם אתם הבעלים של הפרויקט, יש לכם את ההרשאות שנדרשות כדי ליצור handler של מאגר נתונים. אם אינכם ה-Project Owner של הפרויקט, עליכם להיות בעלי התפקידים הבאים:
- אדמין ב-Dialogflow
- אדמין ב-Discovery Engine
מידע נוסף זמין במדריך בקרת הגישה.
הוספת מאגר נתונים לסוכן
אם עדיין לא עשיתם זאת, פעלו לפי הוראות ההגדרה כדי ליצור נציג.
כדי להוסיף מאגר נתונים לנציג:
- בוחרים דף ולוחצים על Add state handler.
- מסמנים את התיבה מאגרי נתונים ולוחצים על אישור.
- בפינה השמאלית העליונה של הקטע מאגרי נתונים, לוחצים על הסמל +.
- בתפריט מאגרי הנתונים שמופיע, לוחצים על הוספת מאגרי נתונים.
- מופיעה טבלה עם רשימה של מאגרי הנתונים הקיימים. מסמנים את התיבה לצד השם של כל מאגר נתונים שרוצים להשתמש בו, ולוחצים על שמירה. כדי ליצור מאגר נתונים חדש, לוחצים על Create new data store. תועברו אוטומטית אל Vertex AI Agent Builder.
- (רק במאגרי נתונים חדשים) בוחרים מקור נתונים ופועלים לפי ההוראות ב-Vertex AI Agent Builder כדי להגדיר את מאגר הנתונים. מידע נוסף על הגדרת סוגים של מאגרי נתונים זמין במאמרי העזרה בנושא מאגרי נתונים. לוחצים על Create כדי ליצור את מאגר הנתונים החדש.
בדיקת הסוכן
פריסת הסוכן
יש כמה דרכים לפרוס את הנציג:
- להשתמש בשילוב כדי לספק ממשק משתמש לנציג. לכל שילוב יש הוראות פריסה.
- השילוב של Dialogflow CX Messenger הוא אפשרות טובה ל-handlers של מאגר נתונים. יש בו אפשרויות מובנות לתכונות גנרטיביות.
- אתם יכולים ליצור ממשק משתמש משלכם ולהשתמש ב-Dialogflow CX API לאינטראקציות. ההטמעה של ממשק המשתמש מנהלת את הפריסה.
כוונות מיוחדות
בנוסף לשאלות על התוכן שאתם מספקים, הנציג יכול לענות על השאלות הבאות:
- זיהוי הנציג: הנציג מטפל בשאלות כמו "מי אתה?" או "האם אתה אנושי?"
- העברה לנציג אנושי: הנציג מטפל בשאלות כמו "אני רוצה לדבר עם נציג אנושי" או "אני רוצה לדבר עם אדם אמיתי".
התהליך הזה מתבצע באמצעות כוונות ומסלולי כוונות שנוצרים באופן אוטומטי.
תשובות של סוכנים
בקטע Agent responses, מספקים תשובות בהתאמה אישית שמפנות לתשובות גנרטיביות. כדי לספק את התשובה הגנרטיבית, משתמשים ב-$request.knowledge.answers[0] בקטע Agent says.
התאמה אישית מתקדמת של התשובות
יכול להיות שמידע נוסף יהיה זמין ב-$request.knowledge.* כדי להתאים אישית את התשובה. המידע הזה כולל:
- המקורות שזוהו לתשובה, עם השדות: snippet, title ו-URI.
- רמת הסמך של העיגון לתשובה.
- במאגר נתונים של שאלות נפוצות, השאלה שתואמת לתשובה שנבחרה.
בטבלה הבאה מפורטות דוגמאות לגישה למידע הזה:
| מידע | איך ניגשים לתכונה |
|---|---|
| קטע מהמקור המוביל שזוהה לתשובה המובילה | $sys.func.GET_FIELD($sys.func.GET($sys.func.IDENTITY($request.knowledge.sources[0]), 0), "snippet") |
| הכותרת של המקור המוביל שזוהה לתשובה המובילה | $sys.func.GET_FIELD($sys.func.GET($sys.func.IDENTITY($request.knowledge.sources[0]), 0), "title") |
| קישור למקור העיקרי שזוהה לתשובה המובילה | $sys.func.GET_FIELD($sys.func.GET($sys.func.IDENTITY($request.knowledge.sources[0]), 0), "uri") |
| מספר המקורות שזוהו לתשובה המובילה | $sys.func.COUNT($sys.func.IDENTITY($request.knowledge.sources[0])) |
| מספר התשובות ממאגר הידע | $sys.func.COUNT($request.knowledge.answers) |
| השאלה שמתאימה לתשובה המובילה (רק לתשובות ממאגר נתונים של שאלות נפוצות) | $request.knowledge.questions[0] |
| רמת המהימנות של העיגון לתשובה המובילה | $request.knowledge.grounding_confidences[0] |