אירוח הסוכן

השלב האחרון במדריך הזה הוא אירוח של סוכן Dialogflow. App Engine משמש לאירוח, כי קל להגדיר אותו והוא מתאים לשינויי נפח. השילוב של Dialogflow Messenger משמש לממשק משתמש של סוכן.

הגדרות אישיות של פרויקט

מומלץ שנציג Dialogflow ומופע App Engine יהיו באותו פרויקט. בנוסף, צריך להפעיל את Cloud Build API.

  1. לפני שיוצרים את המופע, צריך לבחור את הפרויקט במסוף Google Cloud .

    כניסה לדף לבחירת הפרויקט

  2. מפעילים את Cloud Build API בפרויקט.

    הפעלת 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 לפריסה:

  1. מוודאים ש-gcloud מוגדר עם אותו פרויקט כמו סוכן Dialogflow. כדי לבדוק את הפרויקט:

    gcloud config get-value project

    כדי לשנות את הפרויקט:

    gcloud config set project YOUR_PROJECT
  2. בספרייה go-app שבה נמצא הקובץ app.yaml, פורסים את שירות האינטרנט ב-App Engine באמצעות הפקודה הבאה:

    gcloud app deploy

    תתבקשו להזין אזור. חשוב לבחור באותו אזור שבו נמצא נציג Dialogflow. הפקודה תפיק את הערך target url, שהוא כתובת ה-URL של שירות האינטרנט.

  3. כדי להפעיל את הדפדפן ולראות את שירות האינטרנט, אפשר לפתוח את כתובת ה-URL של היעד מהשלב הקודם או להריץ את הפקודה הבאה:

    gcloud app browse

הגדרת Dialogflow Messenger

כדי להגדיר ולהפעיל את Dialogflow Messenger:

  1. עוברים אל מסוף Dialogflow ES.
  2. בתפריט הצד הימני, לוחצים על שילובים.
  3. לוחצים על Dialogflow Messenger.
  4. תיפתח תיבת דו-שיח של הגדרות.
  5. בוחרים סביבה.
  6. לוחצים על Enable.
  7. מעתיקים את קוד ההטמעה כדי להדביק אותו באתר.
  8. לוחצים על Close.

הטמעת הסוכן בשירות האינטרנט

מדביקים את קוד ההטמעה שהעתקתם למעלה בקובץ index.html. רכיבי ה-HTML‏ <script> ו-<df-messenger> צריכים להיות ברכיב <body> של הדף.

פורסים מחדש את אפליקציית שירות האינטרנט באמצעות gcloud. אחרי הפריסה, אפשר לקיים אינטראקציה עם הסוכן דרך דף האינטרנט בלחיצה על סמל הצ'אט בפינה השמאלית התחתונה.

צילום מסך של סוכן Dialogflow שמוטמע בדף אינטרנט

עכשיו יש לכם נציג Dialogflow בפריסה מלאה. כדאי לנסות לנהל שיחה עם הסוכן.

הסרת המשאבים

במהלך השלבים במדריך הזה, יצרתם משאבים שחייבים עליהם. כדי להימנע מחיובים נוספים בחשבון Google Cloud:

  1. מחיקת מופע של מסד נתונים
  2. מחיקת הפונקציה:

    gcloud functions delete tutorial-telecommunications-webhook
  3. השבתת האפליקציה.

  4. מחיקת הסוכן

מידע נוסף

מידע נוסף על השלבים שלמעלה: