בכל שלב בשיחה מתרחשת אינטראקציה. במהלך אינטראקציה, משתמש קצה שולח קלט ל-Dialogflow CX, ו-Dialogflow CX שולח תשובה. יש שתי אפשרויות להטמעת המערכת לטיפול באינטראקציות: באמצעות ה-API או באמצעות שילוב.
כשמשתמשים ב-API, המערכת צריכה לטפל בדברים הבאים:
- יצירת סוכן.
- לספק ממשק משתמש למשתמשי קצה.
- שולחים קריאה ל-Dialogflow API בכל תור בשיחה כדי לשלוח את הקלט של משתמש הקצה ל-API.
- אלא אם התגובות של הנציג הן סטטיות לחלוטין (לא נפוץ), צריך לארח שירות webhook כדי לטפל במילוי בקשות שמופעל באמצעות webhook.
כשמשתמשים בשילוב, המערכת צריכה לטפל רק בדברים הבאים:
- יצירת סוכן.
- אם רוצים, מטמיעים שירות webhook.
בתרשים הבא מוצגים השלבים שמתרחשים במהלך סבב שיחה אחד בסשן.
- משתמש הקצה מקליד או אומר משהו, שנקרא קלט של משתמש הקצה.
- ממשק המשתמש או מערכת השילוב מקבלים את הקלט ומעבירים אותו ל-Dialogflow API בבקשה לזיהוי כוונה.
- Dialogflow API מקבל את הבקשה לזיהוי כוונה. הוא מתאים את הקלט ל-Intent או לפרמטר של טופס, מגדיר פרמטרים לפי הצורך ומעדכן את מצב הסשן. אם צריך לקרוא למילוי בקשה שמופעל באמצעות webhook, נשלחת בקשת webhook לשירות ה-webhook. אחרת, עוברים לשלב 6.
- שירות ה-webhook שלכם מקבל את בקשת ה-webhook. השירות מבצע את הפעולות הנדרשות, כמו קריאה לממשקי API חיצוניים, שליחת שאילתות למסד נתונים או עדכון שלו וכו'.
- שירות ה-webhook יוצר תגובה ושולח אותה בחזרה אל Dialogflow CX.
- Dialogflow CX יוצר תשובה לזיהוי כוונה. אם בוצעה קריאה ל-webhook, הוא משתמש בתשובה שסופקה בתגובת ה-webhook. אם לא בוצעה קריאה ל-webhook, נעשה שימוש בתגובה הסטטית שמוגדרת בנציג. Dialogflow CX שולח תשובה לזיהוי כוונה לממשק המשתמש או למערכת השילוב.
- ממשק המשתמש או מערכת השילוב מקבלים את התגובה לזיהוי הכוונה, ומעבירים את התגובה בטקסט או באודיו למשתמש הקצה.
- משתמש הקצה רואה או שומע את התשובה.
מטרה
כאן מוסבר איך לשלוח קריאה ל-API עבור סבב שיחה אחד של נציג, בלי להשתמש בשילוב. במדריך הזה לא מוסבר איך להטמיע ממשק משתמש למשתמשי הקצה.
לפני שמתחילים
לפני שתקראו את המדריך הזה:
- מידע בסיסי על תהליכים
- לבצע את השלבים להגדרה.
- יוצרים סוכן או ממשיכים להשתמש בסוכן שיצרתם ביצירת סוכן באמצעות תהליכים או ביצירת סוכן באמצעות פלייבוקים.
איסוף מזהים
בדוגמאות הבאות צריך להזין כמה מזהים. כדי למצוא את מזהה הפרויקט, מזהה האזור ומזהה הנציג, אפשר להשתמש באחת מהשיטות הבאות:
מסוף Dialogflow CX
- פותחים את מסוף Dialogflow CX.
- בוחרים את הפרויקט הרצוי.
- לוחצים על תפריט האפשרויות more_vert של סוכן ברשימה.
- לוחצים על הלחצן להעתקת השם filter_none.
- כך מעתיקים את השם המלא של הנציג, שכולל את מזהה הפרויקט, מזהה האזור ומזהה הנציג בפורמט הבא:
projects/PROJECT_ID/locations/REGION_ID/agents/AGENT_ID
פיתוח אפליקציות של AI גנרטיבי
עוברים אל הכלי לפיתוח אפליקציות של AI גנרטיבי:
מזהה הפרויקט מופיע בחלק העליון של המסוף.
בעמודה Location מוצגים מזהי אזורים.
בוחרים אפליקציה.
הקטע של נתיב כתובת ה-URL בדפדפן אחרי
agents/מכיל את מזהה האפליקציה של הנציג.
אתם צריכים גם מזהה סשן. סשן מייצג שיחה בין סוכן Dialogflow CX לבין משתמש קצה. צרו מזהה סשן ייחודי בתחילת השיחה והשתמשו בו בכל שלב בשיחה. כדי לבדוק את ה-API, אפשר להשתמש בכל מזהה מחרוזת בגודל של עד 36 בייטים, כמו test-session-123.
הפעלת detect intent
הדוגמאות הבאות מפעילות את השיטה Sessions.detectIntent.
בוחרים פרוטוקול וגרסה להפניה לסשן:
| פרוטוקול | V3 | V3beta1 |
|---|---|---|
| REST | משאב הסשן | משאב הסשן |
| RPC | ממשק הסשן | ממשק הסשן |
| C++ | SessionsClient | לא זמין |
| C# | SessionsClient | לא זמין |
| המשך | SessionsClient | לא זמין |
| Java | SessionsClient | SessionsClient |
| Node.js | SessionsClient | SessionsClient |
| PHP | לא זמין | לא זמין |
| Python | SessionsClient | SessionsClient |
| Ruby | לא זמין | לא זמין |
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב-Google Cloud
- AGENT_ID: מזהה הנציג שלכם
- REGION_ID: מזהה האזור שלכם
- SESSION_ID: מזהה הסשן שלכם
- END_USER_INPUT: הקלט של משתמש הקצה
ה-method של ה-HTTP וכתובת ה-URL:
POST https://REGION_ID-dialogflow.googleapis.com/v3/projects/PROJECT_ID/locations/REGION_ID/agents/AGENT_ID/sessions/SESSION_ID:detectIntent
תוכן בקשת JSON:
{
"queryInput": {
"text": {
"text": "END_USER_INPUT"
},
"languageCode": "en"
},
"queryParams": {
"timeZone": "America/Los_Angeles"
}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"responseId": "38e8f23d-eed2-445e-a3e7-149b242dd669",
"queryResult": {
"text": "I want to buy a shirt",
"languageCode": "en",
"responseMessages": [
{
"text": {
"text": [
"Ok, let's start a new order."
]
}
},
{
"text": {
"text": [
"I'd like to collect a bit more information from you."
]
}
},
{
"text": {
"text": [
"What color would you like?"
]
}
},
{}
],
"currentPage": {
"name": "projects/PROJECT_ID/locations/us-central1/agents/133b0350-f2d2-4928-b0b3-5b332259d0f7/flows/00000000-0000-0000-0000-000000000000/pages/ce0b88c4-9292-455c-9c59-ec153dad94cc",
"displayName": "New Order"
},
"intent": {
"name": "projects/PROJECT_ID/locations/us-central1/agents/133b0350-f2d2-4928-b0b3-5b332259d0f7/intents/0adebb70-a727-4687-b8bc-fbbc2ac0b665",
"displayName": "order.new"
},
"intentDetectionConfidence": 1,
"diagnosticInfo": { ... },
"match": {
"intent": {
"name": "projects/PROJECT_ID/locations/us-central1/agents/133b0350-f2d2-4928-b0b3-5b332259d0f7/intents/0adebb70-a727-4687-b8bc-fbbc2ac0b665",
"displayName": "order.new"
},
"resolvedInput": "I want to buy a shirt",
"matchType": "INTENT",
"confidence": 1
}
}
}
Java
כדי לבצע אימות ב-Dialogflow CX, צריך להגדיר את Application Default Credentials. למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.
Node.js
כדי לבצע אימות ב-Dialogflow CX, צריך להגדיר את Application Default Credentials. למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.
Python
כדי לבצע אימות ב-Dialogflow CX, צריך להגדיר את Application Default Credentials. למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.
ייצור
לפני שמפעילים את הנציג בסביבת הייצור, כדאי לפעול לפי השיטות המומלצות לסביבת הייצור.