אירוח הסוכן

השלב האחרון במדריך הזה הוא לארח את נציג 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/: ספרייה לתבניות ה-HTML של Go.
      • ‫index.html: תבנית Go HTML.
    • ‫app.yaml: הגדרות השירות.
    • ‫main.go: קוד האפליקציה.

בשלושת החלקים הבאים מופיע התוכן של שלושת הקבצים.

תוכן הקובץ index.html

קובץ התבנית הזה של Go HTML מכיל את ה-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. בתפריט הצדדי שמימין, לוחצים על Integrations (שילובים).
  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. מחיקת הסוכן

מידע נוסף

למידע נוסף על השלבים שלמעלה, אפשר לעיין במאמרים הבאים: