דוגמאות ל-Playbook

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

במסוף יש ממשק שבו אפשר להזין פעולות.

סוכנים שיודעים כמה שפות

אם הנציג שלכם מטפל בכמה שפות, השתמשו בכל אחת מהשפות בדוגמאות שלכם.

דוגמאות לסיכומי קלט ופלט

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

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

מצב לדוגמה

בנקודה מסוימת בשיחה, הפלייבוק נמצא באחד מהמצבים הבאים:

  • ‫OK: הפלייבוק השיג את המטרה שלו והשליטה עוברת לפלייבוק הראשי.
  • ‫CANCELLED: המשתמש מחליט לא להמשיך עם היעד שהוקצה לפלייבוק, והשליטה עוברת לפלייבוק הראשי. אם הפלייבוק הראשי הוא תהליך ב-CX, ‏ Dialogflow CX מזהה את כוונת המשתמש לפני שהתהליך פועל.
  • ‫FAILED: הפלייבוק לא יכול להמשיך עם היעד בגלל שגיאה (לדוגמה, כלי מחזיר שגיאה 500). הסשן מסתיים בסטטוס "נכשל". הודעת EndInteraction נוספת לתשובה.
  • ‫ESCALATED: הפלייבוק מחליט שהוא לא יכול להשיג את המטרה וצריך להעביר את המצב לטיפול אנושי. הסשן מסתיים בסטטוס "הועבר לטיפול ברמה גבוהה יותר". הודעת EndInteraction נוספת לתשובה.
  • ‫PENDING: השיחה ממשיכה ב-Playbook.

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

אסטרטגיית בחירה

ההגדרה של אסטרטגיית הבחירה קובעת אם דוגמה נכללת בהנחיה שנשלחת ל-LLM בשביל הפלייבוק.

אלה האפשרויות הזמינות:

  • בחירה דינמית: הדוגמה נכללת באופן מותנה, בהתאם למידת הרלוונטיות שלה להקשר של השיחה הנוכחית. אם ההנחיה מתקרבת למגבלת הטוקנים, אפשר להשמיט את הדוגמה.
  • Always select: הדוגמה תמיד נכללת, בלי קשר להקשר של השיחה. אם ההנחיה מתקרבת למגבלת הטוקנים, אפשר להשמיט את הדוגמה.
  • אף פעם לא: הדוגמה לא נכללת בהנחיה. הדוגמה לא משפיעה על הביצועים של הפלייבוק. ההגדרה הזו שימושית כשרוצים להחריג באופן זמני דוגמה לצורך בדיקה.

הוספת פעולה

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

יש שתי דרכים להוסיף פעולות לדוגמה:

  • כדי להוסיף פעולה באופן ידני, לוחצים על הכפתור + בתחתית החלונית השמאלית, או על הכפתור Add action כשמעבירים את הסמן מעל פעולות קיימות. אפשר להשתמש באפשרויות האלה כשיוצרים דוגמה חדשה בלחיצה על האפשרות ‎+ Example או כשעורכים דוגמה קיימת.
  • כדי ליצור פעולות באופן אוטומטי על סמך ההוראות הקיימות בפלייבוק, מזינים קלט משתמש בשדה Enter user input בתחתית החלונית השמאלית. השתמשו באפשרות הזו כשאתם יוצרים או עורכים דוגמה. אפשר גם להשתמש באפשרות הזו כשבודקים את הפלייבוק בזמן הריצה בחלונית Preview playbook שמשמאל. כדי לשמור פעולות בדוגמה מהחלונית Preview playbook, לוחצים על Save example אחרי שבוחרים את הפעלת ה-Playbook מרשימת ההפעלות שמימין לחלונית Preview playbook.

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

הפלייבוק תומך בסוגי הפעולות הבאים.

תשובה מ-Playbook

התשובה של הפלייבוק לשאילתה של המשתמש.

קלט של משתמשים

מזינים את שאילתת המשתמש.

שימוש בכלים

לקבל מידע נוסף שנדרש כדי לענות על השאילתה של המשתמש באמצעות הפעלה של כלי.

הפעולה הזו מציינת את הפרטים הבאים:

  • כלי: שם הכלי שצריך להפעיל.
  • פעולה: שם הפעולה של כלי OpenAPI שצריך להפעיל. בכלים של מאגרי נתונים ובכלים של פונקציות, שם הפעולה זהה לשם הכלי.
  • קלט לכלי: קלטים שצריך לכלול בקריאת ה-API לכלי. הקלט הזה בדרך כלל מגיע מחלקים קודמים בשיחה עם המשתמש.

    בכלים של OpenAPI, צריך להשתמש ב-JSON של requestBody בשביל סוגי ה-methods‏ POST,‏ PUT ו-PATCH.

    קלט לדוגמה של כלי OpenAPI requestBody לפעולה createPet:

    {
      "id": 1,
      "name": "Luna"
    }
    

    בכלי של מאגר הנתונים, הדוגמה requestBody מראה איפה השאילתה נדרשת ושדות אחרים הם אופציונליים:

    {
      "query": "Where is my nearest store?",
      "filter": "country: ANY(\"United States\")",
      "userMetadata": {
        "userCity": "San Francisco",
      },
      "fallback": "We don't have any stores in your area."
    }
    
  • פלט הכלי: התגובה להפעלת הכלי. זוהי תגובת JSON תקינה מהכלי לקלט שניתן. בכלי OpenAPI, יכול להיות גם שגיאת מחרוזת (לדוגמה, "404 Not found").

    פלט לדוגמה של כלי OpenAPI לפעולה listPets:

    {
      "pets": [
        {
          "id": 1,
          "name": "Luna"
        },
        {
          "id": 2,
          "name": "Charlie"
        }]
    }
    

    פלט לדוגמה של כלי מאגר הנתונים לשאילתה "איפה החנות הכי קרובה אליי?":

    {
      "answer": "Here's the address to your nearest store ...",
      "snippets": [
        {
          "title": "San Francisco Downtown",
          "uri": "https://www.example.com/San_Francisco_Downtown",
          "text": "Address for San Francisco Downtown .."
        }
      ]
    }
    

כדי לוודא שהפלייבוק חסין לתקלות, כדאי לכלול דוגמאות לאופן שבו הפלייבוק מגיב כשהפעלת הכלי נכשלת. אתם יכולים לייצג את הכישלון בהפעלת הכלי OpenAPI כמחרוזת שגיאה ("404 not found") בפלט של הכלי. בכלים של מאגרי נתונים, אתם יכולים להשתמש בקלט fallback כדי לציין איך להגיב אם אין תשובה מסוכמת.

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

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

הפעלת פלייבוק

הפעולה הזו משמשת כשהפלייבוק צריך להפעיל פלייבוק של משימה אחרת כדי למלא את בקשת המשתמש.

מציינים את הפרטים הבאים לפעולה הזו:

  • Playbook: שם הפלייבוק שרוצים להפעיל.
  • סיכום הקלט של הפעלת הפלייבוק: סיכום של החלקים הרלוונטיים בשיחה הקודמת שמועילים לפלייבוק שהופעל.
  • פרמטרים של קלט: פרמטרים של קלט שצריך להעביר לפלייבוק.
  • סיכום הפלט של הפעלת הפלייבוק: סיכום של מה שהפלייבוק אמור ליצור אחרי השלמת היעד שלו.
  • פרמטרים של פלט: פרמטרים של פלט שנוצרים על ידי הפלייבוק כשהוא משלים את המטרה שלו.

מעבר ל-Playbook

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

הפעלת Flow

הפעולה הזו משמשת כשרוצים שה-Playbook של המשימה יפעיל תהליך.

הפעולה הזו צריכה לציין את הפרטים הבאים:

  • תהליך: שם התהליך שיופעל.
  • פרמטרים של קלט בתהליך: פרמטרים של קלט שמועברים לתהליך.
  • פרמטרים של החזרת תהליך: פרמטרים של פלט שמוחזרים מהתהליך.

מעבר בין תהליכים

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