השלב האחרון במדריך הזה הוא אירוח של סוכן Dialogflow. App Engine משמש לאירוח, כי קל להגדיר אותו והוא מתאים לשינויי נפח. השילוב של Dialogflow Messenger משמש לממשק משתמש של סוכן.
הגדרות אישיות של פרויקט
מומלץ שנציג Dialogflow ומופע App Engine יהיו באותו פרויקט. בנוסף, צריך להפעיל את Cloud Build API.
לפני שיוצרים את המופע, צריך לבחור את הפרויקט במסוף Google Cloud .
מפעילים את Cloud Build API בפרויקט.
הגדרת הסביבה
כדי לפתח אפליקציית Go ל-App Engine, צריך להתקין ולהגדיר כמה דברים. פועלים לפי השלבים שלא השלמתם עדיין במאמר הגדרת סביבת הפיתוח.
יצירת קוד שירות האינטרנט
קוד הדוגמה במדריך הזה כתוב ב-Go, אבל אפשר להשתמש בכל שפה שנתמכת על ידי App Engine. יוצרים את מבנה הקבצים הבא בכל מקום במחשב המקומי:
-
go-app/: ספרייה לשירות Go.-
templates/: ספרייה לתבניות Go HTML.-
index.html: תבנית HTML של Go.
-
-
app.yaml: הגדרות השירות. main.go: קוד האפליקציה.
-
בקטעים הבאים מופיע תוכן לשלושת הקבצים.
התוכן של הקובץ index.html
קובץ תבנית ה-HTML של Go מכיל את ה-HTML של דף הבית. מאכלסים את הקובץ עם התוכן הבא:
<!DOCTYPE html> <html lang="en-US"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <title>Tutorial agent</title> </head> <body> <p>Open the chat window in the bottom right corner.</p> </body> </html>
התוכן של הקובץ app.yaml
זהו קובץ הגדרות שמציין את הגדרות סביבת זמן הריצה של השירות. אפשר לעיין במסמך בנושא סביבת זמן הריצה של Go 1.12 ואילך כדי לראות את רשימת הגרסאות הנתמכות של Go. מאכלסים את הקובץ עם התוכן הבא:
runtime: go116 # or another supported version
התוכן של הקובץ main.go
הקובץ הזה מכיל את קוד האפליקציה. מאכלסים את הקובץ עם התוכן הבא:
// Package main is the main package package main import ( "log" "net/http" "os" "text/template" ) var templates *template.Template func init() { templates = template.Must(template.New("").ParseGlob("templates/*")) } // indexHandler handles the homepage. func indexHandler(w http.ResponseWriter, r *http.Request) { if r.URL.Path != "/" { http.NotFound(w, r) return } if err := templates.ExecuteTemplate(w, "index.html", nil); err != nil { log.Fatal(err) } } func main() { // Register the handlers http.HandleFunc("/", indexHandler) port := os.Getenv("PORT") if port == "" { port = "8080" log.Printf("Defaulting to port %s", port) } log.Printf("Listening on port %s", port) if err := http.ListenAndServe(":"+port, nil); err != nil { log.Fatal(err) } }
פריסת שירות האינטרנט
הקוד מוכן עכשיו לפריסה. השלבים האלה מתבססים על כלי gcloud לפריסה:
מוודאים ש-gcloud מוגדר עם אותו פרויקט כמו סוכן Dialogflow. כדי לבדוק את הפרויקט:
gcloud config get-value project
כדי לשנות את הפרויקט:
gcloud config set project YOUR_PROJECT
בספרייה
go-appשבה נמצא הקובץapp.yaml, פורסים את שירות האינטרנט ב-App Engine באמצעות הפקודה הבאה:gcloud app deploy
תתבקשו להזין אזור. חשוב לבחור באותו אזור שבו נמצא נציג Dialogflow. הפקודה תפיק את הערך
target url, שהוא כתובת ה-URL של שירות האינטרנט.כדי להפעיל את הדפדפן ולראות את שירות האינטרנט, אפשר לפתוח את כתובת ה-URL של היעד מהשלב הקודם או להריץ את הפקודה הבאה:
gcloud app browse
הגדרת Dialogflow Messenger
כדי להגדיר ולהפעיל את Dialogflow Messenger:
- עוברים אל מסוף Dialogflow ES.
- בתפריט הצד הימני, לוחצים על שילובים.
- לוחצים על Dialogflow Messenger.
- תיפתח תיבת דו-שיח של הגדרות.
- בוחרים סביבה.
- לוחצים על Enable.
- מעתיקים את קוד ההטמעה כדי להדביק אותו באתר.
- לוחצים על Close.
הטמעת הסוכן בשירות האינטרנט
מדביקים את קוד ההטמעה שהעתקתם למעלה בקובץ index.html.
רכיבי ה-HTML <script> ו-<df-messenger> צריכים להיות ברכיב <body> של הדף.
פורסים מחדש את אפליקציית שירות האינטרנט באמצעות gcloud. אחרי הפריסה, אפשר לקיים אינטראקציה עם הסוכן דרך דף האינטרנט בלחיצה על סמל הצ'אט בפינה השמאלית התחתונה.

עכשיו יש לכם נציג Dialogflow בפריסה מלאה. כדאי לנסות לנהל שיחה עם הסוכן.
הסרת המשאבים
במהלך השלבים במדריך הזה, יצרתם משאבים שחייבים עליהם. כדי להימנע מחיובים נוספים בחשבון Google Cloud:
- מחיקת מופע של מסד נתונים
מחיקת הפונקציה:
gcloud functions delete tutorial-telecommunications-webhook
מידע נוסף
מידע נוסף על השלבים שלמעלה: