כלים למאגרי נתונים

כלים של מאגרי נתונים יכולים לספק תשובות של נציגים שנוצרו על ידי AI על סמך תוכן האתר ונתונים שהועלו. הנציג יכול למצוא תשובות לשאלות של משתמשי קצה ממאגרי הנתונים שלכם במהלך השלמת הבקשה.

כלי מאגר נתונים: Console

בקטע הזה מוסבר איך להוסיף כלי למאגר נתונים לסוכן ולהגדיר אותו בשרשור פעולה (fulfillment).

יצירת כלי למאגר נתונים

  1. פותחים את המסוף של Conversational Agents ובוחרים פרויקט ב- Google Cloud.
  2. בוחרים סוכן מהתפריט הנפתח.
  3. בסרגל התפריטים שבצד ימין של הדף, לוחצים על כלים.
  4. לוחצים על ‎+ Create. מזינים שם ייחודי לכלי ובוחרים באפשרות מאגר נתונים מהתפריט הנפתח בקטע סוג. אפשר גם להוסיף תיאור של הכלי בשדה Description.
  5. לוחצים על הוספת מאגרי נתונים. בחלון שמופיע מוצגת רשימה של מאגרי הנתונים הקיימים שלכם, אם יש כאלה. בוחרים את מאגר הנתונים שרוצים להוסיף לכלי.
  6. (אופציונלי) כדי ליצור מאגר נתונים חדש במסוף Vertex AI Agent Builder, לוחצים על יצירת מאגר נתונים חדש כדי לעבור אוטומטית למסוף.
  7. (אופציונלי) אחרי שמגדירים את מאגר הנתונים החדש, לוחצים על יצירה. כדי להוסיף את מאגר הנתונים החדש לכלי, חוזרים לתפריט Create Tool במסוף Dialogflow CX ומרעננים את הדף. מאגר הנתונים החדש מופיע ברשימת מאגרי הנתונים הזמינים.
  8. לוחצים על שמירה בחלק העליון של ההגדרה של כלי היצירה כדי ליצור את כלי מאגר הנתונים החדש.

הוספת כלי מאגר הנתונים למילוי הזמנה

  1. בסרגל התפריטים שבצד ימין, בוחרים באפשרות תהליכי עבודה.
  2. בוחרים זרימה ודף, ואז לוחצים על ניתוב כדי להשתמש בהם עם מאגר הנתונים.
  3. עוברים אל מילוי בקשה > הכלי למאגר נתונים ובוחרים את הכלי למאגר נתונים מהתפריט הנפתח.
  4. עוברים אל Fulfillment > Agent responses (השלמת בקשות > תשובות של סוכן), לוחצים על +Add dialogue response (הוספת תשובה לדיאלוג) ואז על Data store tool response (תשובה של כלי למאגר נתונים).
  5. מגדירים את מספר הקישורים למקורות והציטוטים שיופיעו בתשובה, ומציינים את התנהגות ברירת המחדל אם התשובה של מאגר הנתונים ריקה. מזינים תשובת גיבוי סטטית בשדה תשובות גיבוי סטטיות. אפשר גם לסמן את תיבת הסימון מענה גנרטיבי כגיבוי כדי להשתמש ב-AI ליצירת תשובה לפני השימוש בתשובת ה-fallback הסטטית. כדי להתאים אישית תשובות חלופיות, לוחצים על סמל המפתח השוודי בפינה הימנית העליונה של חלון הטופס תשובה ממאגר נתונים כדי לפתוח את החלון תשובה מותנית.
  6. בראש התפריט מסלול, לוחצים על שמירה.
  7. כדי לבדוק את התוצאות של הסוכן, עוברים לסימולטור של Dialogflow CX.

פרמטר אופציונלי של סשן לשינוי שאילתה

אפשר לשנות את השאילתה שמועברת לכלי הזה של מאגר הנתונים באמצעות פרמטר של סשן knowledge.overrides.query. אם הפרמטר הזה לא ריק, הכלי ישתמש בו במקום בשאילתה של המשתמש.

כלים למאגר נתונים: API

כברירת מחדל, הסוכן מתקשר בשמכם אל השיטה 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"
            }
          ]
        }
      }
    ]
  }
}

(סוכנים שמבוססים על תוכניות פעולה בלבד) דוגמאות לכלי מאגר נתונים

כשיוצרים דוגמאות לשימוש בכלי מאגר הנתונים, פרמטר הקלט של הכלי requestBody מספק שלוש אפשרויות קלט יחד עם המחרוזת הנדרשת query: מחרוזת filter, אובייקט מובנה userMetadata ומחרוזת fallback.

הפרמטר filter מאפשר לסנן שאילתות חיפוש של נתונים מובנים או נתונים לא מובנים עם מטא-נתונים. המחרוזת הזו צריכה להיות בפורמט של תחביר נתמך של ביטויי סינון למאגרי נתונים. יש כמה דוגמאות מפורטות שמסבירות למודל של ספר ההפעלה איך לאכלס את הפרמטר הזה. אם מחרוזת של מסנן לא תקינה, המערכת מתעלמת מהמסנן הזה במהלך שאילתת החיפוש.

בדוגמה הבאה מוצגת מחרוזת 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 מספק מידע על משתמש הקצה. אפשר לאכלס את הפרמטר הזה בכל צמד מפתח/ערך. המטא-נתונים האלה מועברים לכלי של מאגר הנתונים כדי לשפר את תוצאות החיפוש ואת התגובה של הכלי. דוגמאות מפורטות רבות עוזרות להנחות את מודל Playbook לגבי אופן מילוי הפרמטר הזה.

הדוגמה הבאה מציגה ערך פרמטר userMetadata שמשמש לשיפור תוצאות החיפוש שרלוונטיות למשתמש ספציפי:

"userMetadata": {
  "favoriteColor": "blue",
  ...
}

הפרמטר fallback מספק תשובה שכלי מאגר הנתונים משיב איתה אם אין תשובה תקפה מסוכמת לשאילתה. אתם יכולים לספק כמה דוגמאות כדי להנחות את מודל Playbook לגבי אופן מילוי שדה ברירת המחדל עבור קלט משתמש שקשור לנושאים שונים. הפלט של הכלי לא מכיל קטעי קוד, מה שעוזר לצמצם את זמן האחזור ואת השימוש בטוקנים של הקלט.

"fallback": "I'm sorry I cannot help you with that. Is there anything else I can
do for you?"

הגדרת כלי מאגר הנתונים

אם במהלך הבדיקה אתם מגלים שתשובות מסוימות לא עומדות בציפיות שלכם, אתם יכולים לנסות לשנות את הפרמטרים הבאים כדי לשפר את הביצועים. אפשר לגשת אליהם ישירות דרך API או בלחיצה על שם מאגר הנתונים בדף כלים במסוף. בדף ההגדרות של מאגר הנתונים תוכלו לקרוא פרטים נוספים על אפשרויות ההגדרה האלה.

אפשרויות לתשובות של כלי מאגר הנתונים

מידע נוסף על הגדרת התגובה של הכלי לאחסון נתונים זמין במאמרי העזרה בנושא מילוי הזמנות.

מטפלים במאגרי נתונים

מטפלים במאגרי נתונים הם סוג מיוחד של מטפלים במצבים שיכולים לספק תשובות של נציגים שנוצרו על ידי מודלים גדולים של שפה (LLM) על סמך תוכן האתר והנתונים שהועלו.

כדי ליצור את ה-handler הזה, צריך לספק מאגרי נתונים לסוכן.

באמצעות המטפלים האלה במאגרי נתונים, הסוכן יכול לנהל שיחות עם משתמשי הקצה לגבי התוכן.

מגבלות

ההגבלות הבאות חלות:

בקרת גישה

אם אתם בעלי הפרויקט, יש לכם את ההרשאות שנדרשות ליצירת handler של מאגר נתונים. אם אתם לא בעלי הפרויקט, צריכים להיות לכם התפקידים הבאים:

  • אדמין ב-Dialogflow
  • Discovery Engine Admin

מידע נוסף מופיע במדריך בקרת הגישה.

הוספת מאגר נתונים לסוכן

אם עדיין לא עשיתם זאת, אתם צריכים לפעול לפי הוראות ההגדרה כדי ליצור סוכן.

כדי להוסיף מאגר נתונים לסוכן:

  1. בוחרים דף ולוחצים על הוספת handler של מצב.
  2. מסמנים את התיבה מאגרי נתונים ולוחצים על החלה.
  3. לוחצים על הסמל + בפינה השמאלית העליונה של הקטע מאגרי נתונים בדף.
  4. בתפריט של מאגרי הנתונים שמופיע, לוחצים על הוספת מאגרי נתונים.
  5. תוצג טבלה עם רשימה של מאגרי נתונים קיימים. מסמנים את התיבה לצד השם של כל מאגרי הנתונים שרוצים להשתמש בהם, ואז לוחצים על שמירה. כדי ליצור מאגר נתונים חדש, לוחצים על יצירת מאגר נתונים חדש. תופנו באופן אוטומטי אל Vertex AI Agent Builder.
  6. (מאגרי נתונים חדשים בלבד) בוחרים מקור נתונים ופועלים לפי ההוראות ב-Vertex AI Agent Builder כדי להגדיר את מאגר הנתונים. מידע נוסף על הגדרת סוגים של מאגרי נתונים זמין במאמרי העזרה בנושא מאגרי נתונים. כדי ליצור את מאגר הנתונים החדש, לוחצים על יצירה.

בדיקת הסוכן

פריסת הסוכן

יש כמה דרכים לפרוס את הסוכן:

  • אפשרות פשוטה היא להשתמש בשילוב, שמספק ממשק משתמש לסוכן שלכם. לכל שילוב יש הוראות לפריסה.
  • השילוב של Dialogflow CX Messenger הוא אפשרות טובה לטיפול במאגרי נתונים. יש בו אפשרויות מובנות לתכונות גנרטיביות.
  • אתם יכולים ליצור ממשק משתמש משלכם ולהשתמש ב-Dialogflow CX API לאינטראקציות. ההטמעה של ממשק המשתמש מנהלת את הפריסה.

כוונות מיוחדות

בנוסף לטיפול בשאלות לגבי התוכן שאתם מספקים, הסוכן הווירטואלי יכול לטפל בסוגי השאלות הבאים:

  • זיהוי הסוכן: הסוכן מטפל בשאלות כמו "מי אתה?" או "האם אתה אנושי?"
  • העברה לנציג אנושי: הנציג מטפל בשאלות כמו 'אני רוצה לדבר עם נציג אנושי' או 'אני רוצה לדבר עם בן אדם אמיתי'.

התהליך הזה מתבצע באמצעות כוונות ונתיבי כוונות שנוצרים באופן אוטומטי.

תשובות של סוכנים

בקטע תשובות של נציג, מספקים תשובות מותאמות אישית שמפנות לתשובות גנרטיביות. משתמשים ב-$request.knowledge.answers[0] בקטע Agent says כדי לספק את התשובה הגנרטיבית.

התאמה אישית מתקדמת של תשובות

יכול להיות שיהיה מידע נוסף ב-$request.knowledge.* כדי להתאים אישית את התגובה. המידע הזה כולל:

  • המקורות שזוהו של התשובה עם השדות הבאים: קטע, שם, 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]