本教學課程的最後一個步驟是託管 Dialogflow 代理。App Engine 易於設定且擴充性良好,因此用於託管。Dialogflow Messenger 整合功能用於代理使用者介面。
專案設定
理想情況下,Dialogflow 代理和 App Engine 執行個體應位於同一個專案中。此外,您必須啟用 Cloud Build API。
建立執行個體前,請先在 Google Cloud 控制台選取專案。
為專案啟用 Cloud Build API。
環境設定
您需要安裝及設定一些項目,才能開發 App Engine 的 Go 應用程式。按照「設定開發環境」中的步驟操作,完成尚未完成的步驟。
建立網路服務程式碼
本教學課程的範例程式碼是以 Go 編寫,但您可以使用 App Engine 支援的任何語言。在本機電腦上建立下列檔案結構:
go-app/:Go 服務的目錄。templates/:Go HTML 範本的目錄。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 工具進行部署:
確認 gcloud 設定的專案與 Dialogflow 代理程式相同。如要查看專案,請按照下列步驟操作:
gcloud config get-value project
如要變更專案,請按照下列步驟操作:
gcloud config set project YOUR_PROJECT
在
app.yaml檔案所在的go-app目錄中,使用下列指令將 網路服務部署至 App Engine:gcloud app deploy
指令會提示您輸入區域。請務必選取與 Dialogflow 代理相同的區域。指令會輸出
target url值,也就是網路服務的網址。如要啟動瀏覽器並查看網路服務,您可以開啟上一個步驟中的目標網址,或執行下列指令:
gcloud app browse
設定 Dialogflow Messenger
如要設定未經驗證的 Dialogflow CX Messenger 代理存取權,請按照下列步驟操作:
- 前往 Dialogflow CX 控制台。
- 選擇 Google Cloud 專案。
- 選取代理程式。
- 選取「管理」分頁標籤。
- 按一下左側側欄選單中的「整合」。
- 按一下「Dialogflow CX Messenger」上的「連結」。
- 設定對話方塊隨即開啟。
- 如果先前已為這個代理程式設定整合,您會看到可嵌入的 HTML 程式碼。無論您要驗證或不驗證,請按一下對話方塊底部的「Disable...」(停用...) 按鈕,以便在下一個步驟中重新設定。
- 選取「Environment」(環境)。
- 選取「Unauthenticated API」。
- 選取樣式。
- 視需要限制網域存取權。
- 按一下「Enable the unauthenticated API」。
- 對話方塊會顯示可嵌入網站的 HTML 程式碼。複製這組代碼。
- 按一下「完成」。
將代理嵌入網路服務
將複製的內嵌程式碼貼到 index.html 檔案中。<script> 和 <df-messenger> HTML 元素應位於網頁的 <body> 元素中。
再次使用 gcloud 部署 Web 服務應用程式。部署完成後,只要點選右下角的對話圖示,即可透過網頁與代理互動。

您現在已完整部署 Dialogflow 虛擬服務專員!試著與代理對話。
清除所用資源
在執行本教學課程的步驟時,您建立了計費資源。如要避免系統向您的 Google Cloud 帳戶收取額外費用,請按照下列步驟操作:
更多資訊
如要進一步瞭解上述步驟,請參閱: