本教程的最后一步是托管您的 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 CX 控制台。
- 选择您的 Google Cloud 项目。
- 选择您的代理。
- 选择管理标签页。
- 点击左侧边栏菜单中的集成。
- 点击 Dialogflow Messenger 上的连接。
- 此时将打开一个配置对话框。
- 如果之前已为此代理设置了集成, 您会看到可嵌入的 HTML 代码。 无论您是想对已进行身份验证的 点击对话框底部的停用...按钮, 以便您在下一步中重新配置这些设置。
- 选择环境。
- 选择未通过身份验证的 API。
- 选择一种风格。
- (可选)限制网域访问权限。
- 点击启用未经身份验证的 API。
- 该对话框将显示可嵌入的 HTML 代码 可嵌入到您网站上的内容 复制此代码。
- 点击完成。
将代理嵌入到您的 Web 服务中
将您之前复制的嵌入代码粘贴到 index.html
文件中。
<script>
和 <df-messenger>
HTML 元素
应该在网页的 <body>
元素中。
使用 gcloud 再次部署您的 Web 服务应用。 部署后 你可以通过网页与代理互动 来聊天。
现在,您已拥有一个完全部署的 Dialogflow 代理! 请尝试与客服人员交谈。
清理
在完成本教程的各个步骤时 您已创建计费资源。 为避免系统向您的 Google Cloud 账号收取额外费用,请执行以下操作:
更多信息
如需详细了解上述步骤,请参阅: