בכל תור בשיחה מתרחשת אינטראקציה. במהלך אינטראקציה, משתמש קצה שולח קלט ל-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 לסיבוב שיחה אחד עם סוכן שלא משתמש בשילוב (שלב 2 בתרשים שלמעלה). במדריך הזה לא מוסבר איך להטמיע ממשק משתמש למשתמשי הקצה.
לפני שמתחילים
לפני שתקראו את המדריך הזה:
- מידע בסיסי על תהליכי עבודה
- לבצע את השלבים להגדרה.
- יוצרים סוכן חדש או ממשיכים להשתמש בסוכן שיצרתם במאמר יצירת סוכן באמצעות Flows או במאמר יצירת סוכן באמצעות Playbooks.
איסוף מזהים
בדוגמאות שלמטה צריך להזין כמה מזהים. כדי למצוא את מזהה הפרויקט, מזהה האזור ומזהה הסוכן:
מסוף Dialogflow CX
- פותחים את מסוף Dialogflow CX.
- בוחרים את Google Cloud הפרויקט כדי לפתוח את בורר הסוכנים.
- לוחצים על האפשרות more_vert בתפריט של סוכן ברשימה.
- לוחצים על הלחצן להעתקת השם filter_none.
- הפעולה הזו מעתיקה את השם המזהה המלא של הסוכן, שכולל את מזהה הפרויקט, מזהה האזור ומזהה הסוכן, בצורה הבאה:
projects/PROJECT_ID/locations/REGION_ID/agents/AGENT_ID
מסוף Vertex AI Agent Builder
עוברים אל מסוף Vertex AI Agent Builder:
מזהה הפרויקט מוצג בחלק העליון של המסוף.
בעמודה מיקום מוצגים מזהי אזורים.
בוחרים אפליקציה.
פלח נתיב כתובת ה-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. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
העברה לסביבת ייצור
לפני שמפעילים את הנציג בסביבת הייצור, חשוב להטמיע את השיטות המומלצות להעברה לייצור.