פתרון בעיות

הפעלת Cloud Logging לנציג

מפעילים את Cloud Logging לנציג. זה חיוני כדי לתעד נתונים ולזהות בעיות בשיחות אמיתיות.

איסוף מזהי שיחות

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

הקריאה ל-API מקבלת את השגיאה "נדחתה הרשאה"

הבעיה

התקבלה תגובה PERMISSION_DENIED לקריאה ל-API.

הפתרון

מוודאים שהגדרתם נכון את האימות והתפקידים (Dialogflow CX,‏ Dialogflow ES). חשוב לוודא שביצעתם את הפעולות הבאות:

  • יצרתם חשבון שירות ולא מחקתם אותו בטעות.
  • הקצאתם לחשבון השירות תפקיד שנותן הרשאה להפעיל את ה-method שנבחרה.
  • הורדתם את קובץ המפתח הפרטי של חשבון השירות.
  • מגדירים את משתנה הסביבה GOOGLE_APPLICATION_CREDENTIALS לקובץ המפתח הפרטי.

הקריאה ל-API מאזכרת פרויקט לא ידוע

הבעיה

התקבלה השגיאה Dialogflow API has not been used in project 32555940559 בקריאה ל-API.

הפתרון

ודאו שביצעתם את הפעולות הבאות:

  • מגדירים את משתנה הסביבה GOOGLE_APPLICATION_CREDENTIALS (ראו PERMISSION_DENIED).
  • לספק את מזהה הפרויקט הנכון לקריאה ל-API.

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

הבעיה

התקבלה התגובה Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. לקריאה ל-API.

הפתרון

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

התגובה לקריאה ל-API מבקשת לעבור למארח אחר

הבעיה

התקבלה התגובה Please switch to 'REGION-dialogflow.googleapis.com' to access resources located in 'REGION' לקריאה ל-API, כאשר REGION הוא מזהה אזור ספציפי.

הפתרון

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

שדות חסרים בתגובה לקריאה ל-API

הבעיה

חסרים כמה שדות בתגובה מה-API.

הפתרון

אם אתם מצפים לערך מספרי בשדה מסוים בתגובה מה-API, יכול להיות שהשדה לא יופיע בתגובה אם הערך שמוחזר הוא 0.

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

אי אפשר למחוק את הפרויקט בגלל מנעול למניעת מחיקה

הבעיה

כשמנסים למחוק פרויקט ב- Google Cloud , מקבלים הודעה שאי אפשר למחוק את הפרויקט כי יש לו שעבודים, ואחד מהשעבודים קשור ל-Dialogflow ES.

הפתרון

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

    מסוף Dialogflow ES

    פותחים את הכתובת https://dialogflow.cloud.google.com/#/agent/project-id/intents.

    שימו לב שהקישור הזה שונה מהקישור בתיבת הדו-שיח למחיקת פרויקט ב- Google Cloud .

    Dialogflow API

    משתמשים ב-method‏ search של הסוג agent.

  2. משיגים את שם השעבוד.

    gcloud

    משתמשים בפקודה gcloud alpha resource-manager liens list, כפי שמתואר במסמך הצגת רשימת שעבודים בפרויקט.

    API Explorer

    משתמשים בחלונית Try this API בדף Method: liens.list:

    • ממלאים את השדה parent, כפי שמוצע בתיאור הפרמטר.
    • לוחצים על Execute.
  3. מוחקים את השעבוד.

    gcloud

    משתמשים בפקודה gcloud alpha resource-manager liens delete LIEN_NAME, כפי שמתואר במסמך הסרת שעבודים מפרויקט.

    API Explorer

    משתמשים בחלונית Try this API בדף Method: liens.delete:

    • ממלאים את השדה name בשם של שעבוד שקיבלתם בשלב 2.
    • לוחצים על Execute.
  4. סגירת הפרויקט.

ה-webhook של Dialogflow CX נכשל עם שגיאה של חריגה מהמועד האחרון

הבעיה

יכול להיות ש-webhook שנקרא מ-Dialogflow CX ייכשל עם הודעת השגיאה הבאה:

Webhook call failed. Error: DEADLINE_EXCEEDED

יכול להיות שהסיבה לכך היא שהקריאה ל-webhook חורגת ממגבלת הזמן הקצוב לתפוגה של ה-webhook. אלה סיבות אפשריות לכך שהקריאה ל-webhook חורגת ממגבלת הזמן הקצוב לתפוגה:

  • ניסיון להפעיל Intent שלא קיים.
  • בעיה בהפעלה במצב התחלתי (cold start) של הקצה העורפי של ה-webhook (לדוגמה, Cloud Functions).
  • ה-webhook קורא לשירותים אחרים, מה שמאריך את זמן התגובה.
  • אין חיבור בין הנציג לבין הקצה העורפי של ה-webhook (לדוגמה, הגדרה שגויה של מאזן העומסים).
  • מדיניות הארגון שמונעת את ההפעלה של תעבורת נתונים נכנסת (ingress) או של שיטות Dialogflow.

פתרון עקיף

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

הגדרת הפרויקט במסוף נכשלה

הבעיה

התקבלה השגיאה Failed to set up GCP project כשניסיתי ליצור נציג באמצעות המסוף.

הפתרון

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

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

הבעיה

התשובות שמוחזרות מ-Dialogflow כוללות את ההפניות לפרמטרים במקום את הערכים של הפרמטרים. לדוגמה:
Hello, $session.params.customer_name

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

הפתרון

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

המסוף לא מצליח ליצור נציג כשה-API לא מופעל

הבעיה

קיבלתי את השגיאה Dialogflow API has not been enabled for the project. Code: FAILED_PRECONDITION כשניסיתי ליצור סוכן באמצעות המסוף.

הפתרון

פועלים לפי שלבי ההגדרה כדי להפעיל את Dialogflow API.

כשניסיתי לגשת למסוף מחשבון ארגוני, קיבלתי הודעת שגיאה מהשירות

הבעיה

קיבלתם את השגיאה You don't have access to this service כשניסיתם לגשת למסוף מחשבון הארגון.

הפתרון

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

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

אי אפשר לייצא את הנציג בפורמט JSON כי חסר תהליך

הבעיה

הייצוא של הנציג כבייטים גולמיים מסתיים בהצלחה, אבל הייצוא של הנציג בפורמט JSON נכשל ומוצגת הודעת שגיאה שדומה לזו:

Flow 'projects/PROJECT_ID/locations/LOCATION_ID/agents/AGENT_ID/flows/FLOW_ID' does not exist
in the agent

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

הפתרון

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

קישוריות לשער גישה טלפוני

הבעיה

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

הפתרון

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

שגיאה מסוג RESOURCE_EXHAUSTED כשמנסים ליצור מספר טלפון חדש

הבעיה

כשמנסים ליצור מספר טלפון חדש ב-Dialogflow CX, ב-Dialogflow ES או ב-Agent Assist, מוחזרת השגיאה RESOURCE_EXHAUSTED.

הפתרון

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

אם יצרתם מספרי טלפון ב-Dialogflow CX Phone Gateway או ב-Dialogflow ES Phone Gateway, אתם יכולים למחוק אותם במסוף. שימו לב שאם מוחקים את הנציג בלי למחוק את מספר הטלפון, מספר הטלפון שמשויך אליו לא נמחק.

לחלופין, אפשר להשתמש ב-API לפי השלבים הבאים.

שלב 1. מזהים את כל מספרי הטלפון שמשויכים לפרויקט

כדי לזהות את מספרי הטלפון שמשויכים לפרויקט, משתמשים בשיטת ה-API‏ projects.phoneNumbers/list או projects.locations.phoneNumbers.list בכל האזורים שבהם יכול להיות שיצרתם מספרי טלפון.

  • לאזור global, משתמשים בפקודה הבאה:

    curl -X GET \
    -H "Authorization: Bearer "$(gcloud auth print-access-token) \
    -H "X-Goog-User-Project: PROJECT_ID" \
    -H "Content-Type: application/json; charset=utf-8" \
    https://dialogflow.googleapis.com/v2beta1/projects/PROJECT_ID/locations/global/phoneNumbers
    
  • באזורים אחרים, צריך לציין את האזור בשני מקומות:

    curl -X GET \
    -H "Authorization: Bearer "$(gcloud auth print-access-token) \
    -H "X-Goog-User-Project: PROJECT_ID" \
    -H "Content-Type: application/json; charset=utf-8" \
    https://REGION_ID-dialogflow.googleapis.com/v2beta1/projects/PROJECT_ID/locations/REGION_ID/phoneNumbers
    

שלב 2: (אופציונלי) זיהוי הנציגים שמשויכים לפרופילים של השיחות

כדי לזהות אם הסוכן עדיין בשימוש ואם עדיין צריך את מספר הטלפון, אפשר לקבל את מזהה הסוכן ב-Dialogflow CX שמשויך למספר הטלפון דרך פרופיל השיחה. כדי לעשות את זה, משתמשים ב-method‏ projects.conversationProfiles/get ב-API. המזהים של פרופילי השיחות מופיעים בתשובות לפקודות שהרצתם בשלב 1.

  • לאזור global, משתמשים בפקודה הבאה:

    curl -X GET \
    -H "Authorization: Bearer "$(gcloud auth print-access-token) \
    -H "X-Goog-User-Project: PROJECT_ID" \
    -H "Content-Type: application/json; charset=utf-8" \
    https://dialogflow.googleapis.com/v2beta1/projects/PROJECT_ID/locations/global/conversationProfiles/CONVERSATION_PROFILE_ID
    
  • באזורים אחרים, צריך לציין את האזור בשני מקומות:

    curl -X GET \
    -H "Authorization: Bearer "$(gcloud auth print-access-token) \
    -H "X-Goog-User-Project: PROJECT_ID" \
    -H "Content-Type: application/json; charset=utf-8" \
    https://REGION_ID-dialogflow.googleapis.com/v2beta1/projects/PROJECT_ID/locations/REGION_ID/conversationProfiles/CONVERSATION_PROFILE_ID
    

כדי למצוא את הסוכן לפי המזהה שלו במסוף Dialogflow CX, משתמשים באפשרות Search בדף View all agents.

ב-Dialogflow ES, אפשר לשייך פרויקט אחד לחמישה נציגים לכל היותר, ואפשר לשייך נציג אחד ב-Dialogflow ES למספר טלפון אחד. כדי לפתוח את הסוכן במסוף Dialogflow ES, אפשר להיכנס לכתובת https://dialogflow.cloud.google.com/#/editAgent/PROJECT_ID/intents.

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

שלב 3. מחיקת מספרי טלפון שלא בשימוש

כדי למחוק מספרי טלפון שכבר לא צריך, משתמשים ב-method‏ projects.phoneNumbers/delete או ב-method‏ projects.locations.phoneNumbers.delete ב-API. אפשר למצוא את מזהי מספרי הטלפון בתגובה לפקודות שהרצתם בשלב 1.

  • לאזור global, משתמשים בפקודה הבאה:

    curl -X DELETE \
        -H "Authorization: Bearer "$(gcloud auth print-access-token) \
        -H "X-Goog-User-Project: PROJECT_ID" \
        -H "Content-Type: application/json; charset=utf-8" \
        https://dialogflow.googleapis.com/v2beta1/PHONE_NUMBER_ID
    
  • באזורים אחרים, צריך לציין את האזור:

    curl -X DELETE \
        -H "Authorization: Bearer "$(gcloud auth print-access-token) \
        -H "X-Goog-User-Project: PROJECT_ID" \
        -H "Content-Type: application/json; charset=utf-8" \
        https://REGION_ID-dialogflow.googleapis.com/v2beta1/PHONE_NUMBER_ID
    

אין תגובה מ-Dialogflow CX Messenger

הבעיה

אין תגובה מהנציג לאינטראקציות ב-Dialogflow CX Messenger.

הפתרון

אם לא מופיעות תשובות מ-Dialogflow CX Messenger, ודאו שהחיוב מופעל בפרויקט ושה-Dialogflow API מופעל בפרויקט. הוראות להגדרה

ערך הפרמטר תואם, אבל הוא לא מילה נרדפת לישות

הבעיה

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

הפתרון

  1. משתמשים באפשרות search כדי לבדוק אם הערך התואם נמצא בסוכן כישות משתמעת (Dialogflow CX, ‏ Dialogflow ES). מוצאים את כל הכוונות שיש להן הערות עם הפרמטר והישות האלה.
  2. כדי לתקן את ההערות, צריך לוודא שאף אחת מהן לא מוחלת על הטקסט שמייצג את הערך התואם הלא רצוי.
  3. בודקים את הנציג בזמן הריצה כדי לוודא שהבעיה נפתרה.
  4. אם הבעיה נמשכת, ודאו שהאפשרויות Automatic expansion ו-Fuzzy matching לא מסומנות בהגדרות המתקדמות של הישות, ובדקו שוב את הנציג.

הבוט הקולי מדלג על חלק מהתשובות

הבעיה

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

הפתרון

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

תגי SSML לא פועלים

הבעיה

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

הפתרון

חשוב לוודא שמופיע רק צמד אחד של <speak></speak> בכל כרטיס תגובה במסוף Dialogflow, או בכל אובייקט של הודעת תגובה אם התגובות מסופקות על ידי ה-API או ה-webhook.

הנציג הקולי מבטא את הספרה אפס כמו האות O

הבעיה

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

הפתרון

  1. משנים את Agent says כדי להשתמש ב-Output audio text dialogue option.
  2. מסמנים את התיבה SSML.
  3. מקיפים את הטקסט בתג SSML:
      <speak>
        <say-as interpret-as='verbatim'>YOUR_TEXT</say-as>
      </speak>
  4. שמירה.

לדוגמה, אפסים במספרי כרטיסי אשראי יאוישו כאפסים:

   <speak>
      <say-as interpret-as='verbatim'>5177 7702 8500 4578</say-as>
   </speak>

הגייה מסונתזת לא צפויה

הבעיה

ההגייה המסונתזת של התשובות של הנציג (למשל, שמות עצם פרטיים, ראשי תיבות) לא תואמת לציפיות.

הפתרון

כדי להבטיח הגייה מסוימת של מילים לא מוכרות, השתמשו בתג SSML‏ say-as או phoneme בתשובות של הנציג.

הגעת למספר המקסימלי המותר של שלבי ביצוע במכונת המצבים

הבעיה

הודעת השגיאה הבאה התקבלה במסוף Dialogflow CX או ביומנים כשנשלחו בקשות בזמן ריצה לסוכן:

You have reached the maximum allowed state machine execution steps. You may consider simplifying your agent/flow design. Current execution steps are: [<array_of_objects>]

המערך בהודעת השגיאה מכיל רשימה של שלבי הביצוע של הבקשה. אם יש יותר מדי שלבים, יכול להיות שהרשימה לא תהיה מלאה.

הפתרון

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

כדי לפתור את הבעיה:

  1. מעתיקים את מערך ה-JSON מהודעת השגיאה.
  2. (אופציונלי) כדי לשפר את הקריאוּת, אפשר להגדיר את הפורמט של המערך שהועתק כ-JSON קריא. אם הודעת השגיאה נקטעת, חפשו את אובייקט ה-Step האחרון, מחקו את אובייקט השלב הלא שלם ואת הפסיק שלפניו, והוסיפו סוגר מרובע לסגירת המערך לפני האימות והעיצוב של ה-JSON.
  3. בודקים את הערכים של "TriggeredTransitionRouteId" ו-"TargetPage" בכל שלב. במקרה של לולאה אינסופית, השדות "TriggeredTransitionRouteId" ו-"TargetPage" מכילים ערכים שחוזרים על עצמם ברוב השלבים.
  4. כדי להסיר את המעברים בלולאה אינסופית או להפחית את מספר המעברים בתור אחד בשיחה, צריך לשנות את עיצוב הנציג.

ההתאמה של הביטוי הרגולרי רחבה מדי

הבעיה

התקבלה השגיאה Regular expression match is too broad כשנוצרה ישות של ביטוי רגולרי (Dialogflow CX, ‏ Dialogflow ES).

הפתרון

כדאי לשקול את הגישה הבאה:

  • משתמשים ב-^ וב-$ בביטוי הרגולרי כדי לציין את ההתחלה והסוף של הטקסט, בהתאמה.
  • משתמשים בישות regexp עם פרמטר נדרש (Dialogflow CX, ‏ Dialogflow ES).
  • הגדירו את ההנחיות לפרמטרים הנדרשים כדי לבקש ממשתמש הקצה לספק רק את ערך הישות, בלי מילים מסביב.

תווים לא רצויים שאינם אלפאנומריים שנוספו על ידי זיהוי דיבור

הבעיה

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

הפתרון

  1. אם אתם משתמשים בישויות מערכת להתאמת מספרים, כדאי להשתמש במקום זאת בישויות regexp‏ (Dialogflow CX, ‏ Dialogflow ES).
  2. פועלים לפי כל ההמלצות בקטע זיהוי דיבור לא מדויק של תווים אלפאנומריים על ידי ישויות של ביטויים רגולריים.
  3. כדי להתאים מספרים באמצעות שילובים של טלפוניה, כדאי להשתמש באפשרות DTMF בנוסף לזיהוי דיבור.

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

הבעיה

התשובות של Dialogflow לקלט קולי מחזירות תמלילים ריקים. הבקשות מטופלות כ"אין קלט" או "אין התאמה".

הפתרון

מאזינים להקלטת האודיו כדי לוודא שהיא מכילה דיבור.

מוודאים שהתאמת הדיבור מופעלת בהגדרות של הסוכן (Dialogflow CX, ‏ Dialogflow ES).

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

  • latest_short
  • phone_call
  • command_and_search

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

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

  • בבקשות API, צריך לציין את שם המודל בשדה model ב-InputAudioConfig (Dialogflow CX,‏ Dialogflow ES).

  • אם אתם משתמשים ב-Phone Gateway (‏Dialogflow CX,‏ Dialogflow ES), אתם יכולים לעדכן את מודל הדיבור בפרופיל השיחה שנוצר על ידי Dialogflow כשהפעלתם את השילוב:

    1. מאחזרים את המזהה של פרופיל השיחה:

      • משתמשים ב-method‏ conversationProfiles.list כדי לאחזר את כל הפרופילים של השיחות שמקושרים לפרויקט.
      • מוצאים את פרופיל השיחה שרוצים לעדכן ומעתיקים את הערך בשדה name.

      ב-Dialogflow CX Phone Gateway, השם המוצג של פרופיל השיחה נמצא בהגדרות השילוב. ב-Dialogflow ES Phone Gateway, השם המוצג של פרופיל השיחה תואם לשם הנציג שבו הופעלה האינטגרציה.

      אם יש לכם כמה פרופילים של שיחות עם אותו שם לתצוגה, צריך לאמת את מזהה הנציג בשדה automatedAgentConfig מהתגובה של ה-method‏ conversationProfiles.list.

    2. משתמשים בשיטת ה-API‏ conversationProfiles.patch כדי לעדכן את השדה model ב-SpeechToTextConfig.

  • בשילובים של Contact Center AI, צריך לבדוק עם משלב הטלפוניה איך לעדכן את מודל הדיבור לשילוב או לבקשות ספציפיות.

הסבר על שגיאות לולאה בפלייבוקים

הבעיה

כשמקשרים פלייבוקים, מופיעה השגיאה Playbook <playbookID> caused loop in playbook routes.

הפתרון

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

מסך ריק עם השגיאה "הקובץ גדול מ-2MB" כשמשווים בין גרסאות של נציגים

הבעיה

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

File size exceeds 2MB

הבעיה הזו נגרמת כי אחד מהקבצים גדול מ-2MB.

הפתרון

כדי להשוות בין גרסאות של נציגים כשאחד מהקבצים גדול מ-2MB, מומלץ להשתמש ב-method‏ compareVersion של ה-API.

זיהוי דיבור לא מדויק של תווים אלפאנומריים על ידי ישויות של ביטויים רגולריים (regexp)

הבעיה

התקבלו תמלילים לא מדויקים של קלט קולי של תווים אלפאנומריים שנועדו להתאים לישות של ביטוי רגולרי (Dialogflow CX,‏ Dialogflow ES).

הפתרון

  1. מוודאים שהתאמת הדיבור מופעלת בהגדרות הסוכן (Dialogflow CX,‏ Dialogflow ES).
  2. חשוב לוודא שלפחות רשומה אחת של ישות עומדת בכל הדרישות של רשומות הביטויים הרגולריים (Dialogflow CX,‏ Dialogflow ES).
  3. לתבניות ספציפיות, השתמשו בביטויים הרגולריים הכי ספציפיים. לדוגמה, אם יש ערך אלפאנומרי שמתחיל בשתי אותיות ואחריהן חמש ספרות, צריך להשתמש ב-[a-zA-Z]{2}\d{5} במקום ב-[a-zA-Z0-9]{7}.
  4. חשוב לוודא שהישות של הביטוי הרגולרי מאפשרת התאמה של תווים שאינם אלפאנומריים (רווחים, מקפים וכו') שעשויים להתווסף על ידי מזהה הדיבור. כדי לעמוד בדרישה השנייה ברשימה, צריך ליצור כמה רשומות של ישויות: רשומה אחת שתעמוד בדרישה השנייה ברשימה, ורשומה נוספת שתתייחס לתווים שאינם אלפאנומריים. לדוגמה, כדי להתאים חמש ספרות ולאפשר תווים שאינם אלפאנומריים:
     \d{5}
     (\d[^a-zA-Z0-9]*){5}
    
  5. חשוב לוודא שהסוכן עומד בדרישות להגדרת הפרמטרים (Dialogflow CX,‏ Dialogflow ES).

    דוגמה ל-Dialogflow CX

    פרמטר נדרש ב-Dialogflow CX

    דוגמה ל-Dialogflow ES

    פרמטר נדרש ב-Dialogflow ES
  6. חשוב לוודא שהנציג עומד בדרישות להוספת הערות לביטויי אימון (Dialogflow CX,‏ Dialogflow ES).

    דוגמה ל-Dialogflow ES

    אין הערות בביטויי אימון ב-Dialogflow ES
  7. חשוב לוודא שהבדיקות עומדות בהנחיות לבדיקה (Dialogflow CX,‏ Dialogflow ES).
  8. כדי להסיר תווים שאינם אלפאנומריים, שאולי נוספו על ידי מזהה הדיבור, משתמשים בקוד הבא:
  9. בודקים את המגבלות של התאמת הדיבור (Dialogflow CX,‏ Dialogflow ES).

עיצוב לשיחות מבוקרות

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

ניתוח יומנים

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

התנסות בכתיבת פרומפטים

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

לספק לתמיכה מידע מלא

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