אם אתם לא משתמשים בשילוב, אתם צריכים לכתוב קוד כדי ליצור אינטראקציה עם משתמשי הקצה. בכל תור בשיחה, הקוד שלכם קורא ל-Dialogflow API כדי לשלוח שאילתה לסוכן. במדריך הזה נסביר איך ליצור אינטראקציה עם סוכן באמצעות API בארכיטקטורת REST בשורת הפקודה ובאמצעות ספריות לקוח.
לפני שמתחילים
אם אתם לא מתכננים להשתמש ב-API, אתם יכולים לדלג על המדריך הזה.
לפני שתקראו את המדריך הזה:
- חשוב להבין את היסודות של Dialogflow.
- לבצע את השלבים להגדרה.
- פועלים לפי השלבים במדריך למתחילים בנושא יצירת סוכן.
השלבים שבהמשך מתייחסים לסוכן שהתחלתם לעבוד איתו במדריך הזה.
אם אין לכם יותר את הסוכן הזה, אתם יכולים להוריד את
build-agent-quickstart.zipואז לייבא את הקובץ.
התפקידים הנדרשים
כדי לקבל את ההרשאות שנדרשות לביצוע המשימות במדריך הזה, צריך לבקש מהאדמין להקצות לכם ב-IAM את התפקיד Dialogflow API Client (roles/dialogflow.client) בפרויקט.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
סשנים
סשן מייצג שיחה בין סוכן Dialogflow לבין משתמש קצה. יוצרים סשן בתחילת השיחה ומשתמשים בו בכל תור של השיחה. אחרי שהשיחה מסתיימת, מפסיקים להשתמש בסשן.
אסור להשתמש באותו סשן לשיחות בו-זמניות עם משתמשי קצה שונים. מערכת Dialogflow שומרת את ההקשרים הפעילים כרגע לכל סשן פעיל. נתוני הסשן מאוחסנים על ידי Dialogflow למשך 20 דקות.
כל סשן נחשב לייחודי לפי מזהה הסשן שנוצר על ידי המערכת. כדי ליצור סשן חדש, צריך לספק מזהה סשן חדש בבקשה לזיהוי כוונת המשתמש. מזהה הסשן הוא מחרוזת בגודל של עד 36 בייטים. המערכת שלכם אחראית ליצירת מזהי סשן ייחודיים. יכולים להיות אלה מספרים אקראיים, מזהים של משתמשי קצה שעברו גיבוב, או כל ערך אחר שנוח לכם ליצור.
זיהוי כוונות
כשמשתמשים בממשק ה-API לאינטראקציות, השירות יוצר אינטראקציה ישירה עם משתמש הקצה.
בכל תור בשיחה, השירות שלכם שולח ביטויים של משתמשי הקצה ל-Dialogflow על ידי קריאה לשיטה detectIntent או streamingDetectIntent של הסוג Sessions.
Dialogflow מגיב עם מידע על ה-Intent התואם, הפעולה, הפרמטרים והתגובה שהוגדרו עבור ה-Intent.
השירות שלכם מבצע פעולות לפי הצורך (לדוגמה, שאילתות במסד נתונים או קריאות ל-API חיצוני) ושולח הודעה למשתמש הקצה.
התהליך הזה נמשך עד שהשיחה מסתיימת.
בדוגמאות הבאות אפשר לראות איך לזהות כוונות. כל דוגמה מקבלת קבוצת משנה של הקלטים הבאים:
- מזהה הפרויקט: משתמשים במזהה הפרויקט של הפרויקט שיצרתם בשלבי ההגדרה.
- מזהה סשן: למטרת בדיקת סוכן, אפשר להשתמש בכל ערך. לדוגמה, המחרוזת '123456789' משמשת לעיתים קרובות בדוגמאות.
- טקסט או טקסטים: זהו הביטוי היחיד של משתמש הקצה או רשימת הביטויים של משתמשי הקצה. אם מספקים כמה ביטויים, קריאות לקוד לדוגמה יזהו את הכוונה של כל ביטוי. אפשר לנסות להגיד "אני יודע צרפתית".
- Language code: קוד השפה של הביטוי של משתמש הקצה. בדוגמה הזו, נשתמש בסוכן עם השפה en-US.
REST
כדי לזהות כוונות, מבצעים קריאה לשיטהdetectIntent במשאב Sessions.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב-Google Cloud
- SESSION_ID: מזהה סשן
ה-method של ה-HTTP וכתובת ה-URL:
POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/agent/sessions/SESSION_ID:detectIntent
תוכן בקשת JSON:
{
"query_input": {
"text": {
"text": "I know french",
"language_code": "en-US"
}
}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"responseId": "856510ca-f617-4e25-b0bb-a26c0a59e030-19db3199",
"queryResult": {
"queryText": "I know french",
"parameters": {
"language": "French",
"language-programming": ""
},
"allRequiredParamsPresent": true,
"fulfillmentText": "Wow! I didn't know you knew French. How long have you known French?",
"fulfillmentMessages": [
{
"text": {
"text": [
"Wow! I didn't know you knew French. How long have you known French?"
]
}
}
],
"outputContexts": [
{
"name": "projects/PROJECT_ID/agent/sessions/123456789/contexts/set-language-followup",
"lifespanCount": 2,
"parameters": {
"language": "French",
"language.original": "french",
"language-programming": "",
"language-programming.original": ""
}
}
],
"intent": {
"name": "projects/PROJECT_ID/agent/intents/fe45022f-e58a-484f-96e8-1cbd6628f648",
"displayName": "set-language"
},
"intentDetectionConfidence": 1,
"languageCode": "en"
}
}
כמה נקודות חשובות לגבי התשובה:
- השדה
queryResult.intentמכיל את ה-Intent שתאם. - הערך של השדה
queryResult.fulfillmentMessagesמכיל את התגובה להבעת הכוונה. זו התשובה שהמערכת שלכם צריכה להעביר למשתמש הקצה. - הערך של השדה
queryResult.parametersמכיל את הפרמטרים שחולצו מהביטוי של משתמש הקצה. - השדה
queryResult.outputContextמכיל את ההקשר הפעיל.
Go
כדי לבצע אימות ב-Dialogflow CX, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Java
כדי לבצע אימות ב-Dialogflow CX, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Node.js
כדי לבצע אימות ב-Dialogflow CX, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Python
כדי לבצע אימות ב-Dialogflow CX, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
שפות נוספות
C#: צריך לפעול לפי הוראות ההגדרה של C# בדף של ספריות הלקוח ואז לעבור אל מאמרי העזרה של Dialogflow CX בנושא .NET.
PHP: צריך לפעול לפי הוראות ההגדרה של PHP בדף של ספריות הלקוח ואז לעבור אל מסמכי העזר של Dialogflow CX ל-PHP.
Ruby: פועלים לפי הוראות ההגדרה של Ruby בדף של ספריות הלקוח, ואז עוברים אל מאמרי העזרה של Dialogflow CX בנושא Ruby.
העברה לסביבת ייצור
לפני שמפעילים את הנציג בסביבת הייצור, חשוב להטמיע את השיטות המומלצות להעברה לסביבת הייצור.