本教程的最后一步是托管 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 服务的网址。如需启动浏览器并查看您的 Web 服务,您可以打开上一步中的目标网址,也可以运行以下命令:
gcloud app browse
设置 Dialogflow Messenger
如需为 Dialogflow CX Messenger 代理设置未经身份验证的访问权限,请执行以下操作:
- 前往 Dialogflow CX 控制台。
- 选择您的 Google Cloud 项目。
- 选择您的代理。
- 选择管理标签页。
- 点击左侧边栏菜单中的集成。
- 点击 Dialogflow CX Messenger 上的连接。
- 此时将打开一个配置对话框。
- 如果之前已为此代理设置集成,您将看到可嵌入的 HTML 代码。无论您要进行何种身份验证,请点击对话框底部的停用…按钮,以便在下一步中重新配置设置。
- 选择环境。
- 选择未经身份验证的 API。
- 选择一种样式。
- (可选)限制网域访问权限。
- 点击启用未经身份验证的 API。
- 该对话框中会显示可嵌入到您网站中的 HTML 代码。 复制此代码。
- 点击完成。
将智能体嵌入到您的 Web 服务中
将您在上面复制的嵌入代码粘贴到 index.html 文件中。
<script> 和 <df-messenger> HTML 元素应位于网页的 <body> 元素中。
使用 gcloud 再次部署 Web 服务应用。 部署完成后,您可以通过点击右下角的聊天图标,在网页上与智能体互动。

现在,您已成功部署 Dialogflow 代理! 尝试与智能体对话。
清理
在执行本教程中的步骤时,您创建了计费资源。 为避免系统向您的 Google Cloud 账号收取额外费用,请执行以下操作:
更多信息
如需详细了解上述步骤,请参阅: