בכל תור בשיחה מתרחשת אינטראקציה. במהלך אינטראקציה, משתמש קצה שולח קלט ל-Dialogflow CX, ו-Dialogflow CX שולח תגובה. יש שתי אפשרויות להטמעת המערכת כדי לטפל באינטראקציות: שימוש ב-API או שימוש בשילוב.
כשמשתמשים ב-API, המערכת צריכה לטפל בפעולות הבאות:
- יוצרים סוכן.
- לספק ממשק משתמש למשתמשי קצה.
- שולחים קריאה ל-Dialogflow API בכל תור בשיחה כדי לשלוח את הקלט של משתמש הקצה ל-API.
- אלא אם התשובות של הסוכן שלכם הן סטטיות לחלוטין (לא נפוץ), אתם צריכים לארח שירות webhook כדי לטפל בביצוע הזמנות שמופעלות באמצעות webhook.
כשמשתמשים בשילוב, המערכת צריכה לטפל רק בדברים הבאים:
- יוצרים סוכן.
- אפשר להטמיע שירות webhook.
בתרשים הבא מוצגים השלבים שמתרחשים במהלך תור אחד של שיחה בביקור.
- משתמש הקצה מקליד או אומר משהו, שנקרא קלט ממשתמש הקצה.
- ממשק המשתמש או מערכת השילוב מקבלים את הקלט ומעבירים אותו אל Dialogflow API בבקשה לזיהוי כוונות.
- Dialogflow API מקבל את הבקשה לזיהוי כוונה. הוא מתאים את הקלט לפרמטר של Intent או טופס, מגדיר פרמטרים לפי הצורך ומעדכן את מצב הסשן. אם צריך להתקשר ל-fulfillment עם 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 גנרטיבי:
מזהה הפרויקט מוצג בחלק העליון של המסוף.
בעמודה מיקום מוצגים מזהי אזורים.
בוחרים אפליקציה.
פלח נתיב כתובת ה-URL בדפדפן אחרי
agents/מכיל את מזהה אפליקציית הסוכן.
צריך גם מזהה סשן. סשן מייצג שיחה בין סוכן של Dialogflow CX לבין משתמש קצה. יוצרים מזהה סשן ייחודי בתחילת השיחה ומשתמשים בו בכל תור בשיחה. כדי לבדוק את ה-API, אפשר להשתמש בכל מזהה מחרוזת באורך של עד 36 בייט, כמו test-session-123.
זיהוי כוונת השיחה
בדוגמאות הבאות מבוצעת קריאה למתודה Sessions.detectIntent.
בוחרים פרוטוקול וגרסה להפניה של הסשן:
| פרוטוקול | V3 | V3beta1 |
|---|---|---|
| REST | Session resource | Session resource |
| 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. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
ייצור
לפני שמריצים את הסוכן בסביבת הייצור, חשוב לפעול לפי השיטות המומלצות לשימוש בסביבת הייצור.