אם אתם לא משתמשים בשילוב, אתם צריכים לכתוב קוד כדי ליצור אינטראקציה עם משתמשי הקצה. בכל שלב בשיחה, הקוד שלכם שולח קריאה ל-Dialogflow API כדי לשלוח שאילתה לנציג. במדריך הזה נסביר איך ליצור אינטראקציה עם נציג באמצעות API בארכיטקטורת REST בשורת הפקודה ובאמצעות ספריות הלקוח.
לפני שמתחילים
אם אתם לא מתכננים להשתמש ב-API, אתם יכולים לדלג על המדריך הזה למתחילים.
לפני שתקראו את המדריך הזה:
- להבין את היסודות של Dialogflow.
- לבצע את השלבים להגדרה.
- מבצעים את השלבים במדריך למתחילים יצירת נציג.
השלבים הבאים ממשיכים את העבודה על הנציג שהתחלתם במדריך הזה.
אם הסוכן הזה כבר לא קיים, אתם יכולים להוריד את
build-agent-quickstart.zipולייבא את הקובץ.
התפקידים הנדרשים
כדי לקבל את ההרשאות שנדרשות לביצוע המשימות שבמדריך הזה, צריך לבקש מהאדמין להקצות לכם ב-IAM את התפקיד לקוח Dialogflow API (roles/dialogflow.client) בפרויקט.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
סשנים
סשן מייצג שיחה בין נציג Dialogflow לבין משתמש קצה. אתם יוצרים סשן בתחילת השיחה ומשתמשים בו בכל שלב בשיחה. כשהשיחה מסתיימת, אתם מפסיקים להשתמש בסשן.
אין להשתמש באותו סשן לשיחות בו-זמניות עם משתמשי קצה שונים. ב-Dialogflow נשמרים ההקשרים הפעילים כרגע לכל סשן פעיל. נתוני הסשן נשמרים ב-Dialogflow למשך 20 דקות.
כל סשן מזוהה כייחודי באמצעות מזהה סשן שנוצר על ידי המערכת שלכם. כדי ליצור סשן חדש, צריך לספק מזהה סשן חדש בבקשה לזיהוי כוונה. מזהה סשן הוא מחרוזת בגודל של עד 36 בייטים. המערכת שלכם אחראית ליצירת מזהי סשן ייחודיים. הם יכולים להיות מספרים אקראיים, מזהי משתמש מגובבים של משתמשי קצה או כל ערך אחר שנוח לכם ליצור.
זיהוי כוונה
כשמשתמשים ב-API לאינטראקציות, השירות יוצר אינטראקציה ישירה עם משתמש הקצה.
בכל שלב בשיחה, השירות שולח את הביטויים של משתמש הקצה ל-Dialogflow באמצעות קריאה ל-method detectIntent או streamingDetectIntent של הסוג Sessions.
Dialogflow מגיב עם מידע על ה-intent התואמת, הפעולה, הפרמטרים והתגובה שהוגדרה ל-intent.
השירות מבצע פעולות לפי הצורך (לדוגמה, שאילתות במסד נתונים או קריאות ל-API חיצוני) ושולח הודעה למשתמש הקצה.
התהליך הזה נמשך עד שהשיחה מסתיימת.
בדוגמאות הבאות מוסבר איך לזהות כוונה. כל דוגמה מקבלת קבוצת משנה של הקלטים הבאים:
- Project ID: מזהה הפרויקט שיצרתם בשלבי ההגדרה.
- מזהה סשן: כדי לבדוק נציג, אפשר להשתמש בכל דבר. לדוגמה, המספר "123456789" מופיע לעיתים קרובות בדוגמאות.
- טקסט או טקסטים: זהו הביטוי היחיד של משתמש הקצה או רשימת הביטויים של משתמש הקצה. אם מספקים כמה ביטויים, הקוד לדוגמה קורא לזיהוי כוונה לכל ביטוי. אפשר לנסות להגיד "אני יודע צרפתית".
- קוד שפה: קוד השפה של הביטוי של משתמש הקצה. בסוכן לדוגמה הזה, משתמשים ב-"en-US".
REST
כדי לזהות כוונה, צריך להפעיל את ה-methoddetectIntent במשאב 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מכיל את התגובה ל-Intent. זו התשובה שהמערכת שלכם צריכה להעביר למשתמש הקצה. - הערך של השדה
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.
העברה לסביבת ייצור
לפני שתפעילו את הנציג בסביבת הייצור, חשוב להטמיע את השיטות המומלצות להעברה לייצור.