托管代理

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

本教程的最后一步是托管您的 Dialogflow 代理。App Engine 用于托管,因为它易于设置和扩缩。Dialogflow Messenger 集成用于代理界面。

项目配置

理想情况下,Dialogflow 代理和 App Engine 实例位于同一项目中。此外,您还必须启用 Cloud Build API。

  1. 在创建实例之前,请从 Google Cloud Console 选择您的项目。

    转到“项目选择器”

  2. 为项目启用 Cloud Build API。

    启用 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)
	}
}

部署 Web 服务

现在,您的代码已可部署。以下步骤使用 gcloud 工具进行部署:

  1. 确保 gcloud 配置了与 Dialogflow 代理相同的项目。如需检查项目,请执行以下操作:

    gcloud config get-value project

    如需更改项目,请执行以下操作:

    gcloud config set project YOUR_PROJECT
  2. app.yaml 文件所在的 go-app 目录中,使用以下命令将 Web 服务部署到 App Engine:

    gcloud app deploy

    该命令将提示您输入区域。请务必选择与 Dialogflow 代理相同的区域。该命令会输出 target url 值,即您的 Web 服务的网址。

  3. 如需启动浏览器并查看 Web 服务,您可以打开上一步中的目标网址,或者运行以下命令:

    gcloud app browse

设置 Dialogflow Messenger

如需设置和启用 Dialogflow Messenger,请执行以下操作:

  1. 转到 Dialogflow CX 控制台
  2. 选择 GCP 项目。
  3. 选择您的代理。
  4. 选择管理标签页。
  5. 点击左侧边栏菜单中的集成
  6. 对于 Dialogflow Messenger,点击连接
  7. 此时将打开一个配置对话框。
  8. 点击启用
  9. 复制要在您的网站上粘贴的嵌入代码。
  10. 点击配置对话框上的完成

在网络服务中嵌入代理

将您在上述步骤中复制的嵌入代码粘贴到 index.html 文件中。 <script><df-messenger> HTML 元素应位于网页的 <body> 元素中。

使用 gcloud 再次部署您的网络服务应用。部署后,您可以点击右下角的聊天图标,通过网页与代理互动。

网页上嵌入的 Dialogflow 代理的屏幕截图

现在,您已拥有一个完全部署的 Dialogflow 代理! 请尝试与客服人员进行对话。

清理

在完成本教程的步骤时,您创建了可计费资源。为避免系统向您的 Google Cloud 帐号收取额外费用,请执行以下操作:

  1. 删除数据库实例
  2. 删除您的函数:

    gcloud functions delete tutorial-telecommunications-webhook
  3. 停用应用

  4. 删除代理

更多信息

如需详细了解上述步骤,请参阅: