本教程的最后一步是托管您的 Dialogflow 代理。 App Engine 用于托管 因为它设置简单,且可轻松扩展。 通过 Dialogflow Messenger 集成用于代理界面。
项目配置
理想情况下,您的 Dialogflow 代理和 App Engine 实例 它们属于同一个项目 此外,您还必须启用 Cloud Build API。
在创建实例之前 从 Google Cloud 控制台中选择您的项目。
为项目启用 Cloud Build API。
环境设置
你需要安装并配置一些东西 以便为 App Engine 开发 Go 应用。 按照设置开发环境中未完成的步骤操作。
创建 Web 服务代码
本教程的示例代码采用 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) } }
部署 Web 服务
您的代码现在可以部署了。 这些步骤使用 gcloud 工具 :
确保使用同一项目配置 gcloud 作为您的 Dialogflow 代理。 如需检查项目,请执行以下操作:
gcloud config get-value project
如需更改项目,请执行以下操作:
gcloud config set project YOUR_PROJECT
在
app.yaml
文件所在的go-app
目录中,部署您的 将 Web 服务迁移到 App Engine。gcloud app deploy
该命令会提示您输入地区。请务必选择与 Dialogflow 代理相同的区域。 该命令将输出
target url
值, ,即您的网络服务的网址。如需启动浏览器并查看 Web 服务,请按以下步骤操作: 您可以打开上一步中的目标网址, 或运行以下命令:
gcloud app browse
设置 Dialogflow Messenger
如需设置和启用 Dialogflow Messenger,请执行以下操作:
- 转到 Dialogflow ES 控制台。
- 点击左侧边栏菜单中的集成。
- 点击 Dialogflow Messenger。
- 此时将打开一个配置对话框。
- 选择环境。
- 点击启用。
- 复制要在您的网站上粘贴的嵌入代码。
- 点击关闭。
在 Web 服务中嵌入代理
将您之前复制的嵌入代码粘贴到 index.html
文件中。<script>
和 <df-messenger>
HTML 元素应该位于网页的 <body>
元素中。
使用 gcloud 再次部署您的 Web 服务应用。 部署完成后,您可以点击右下角的聊天图标,通过网页与客服人员互动。
现在,您已成功部署 Dialogflow 代理! 请尝试与客服人员交谈。
清理
在本教程中,您创建了可计费的资源。为避免系统向您的 Google Cloud 账号收取额外费用,请执行以下操作:
更多信息
如需详细了解上述步骤,请参阅: