API 交互

如果您没有使用某个集成选项,则必须编写与最终用户直接交互的代码。您还必须针对每轮对话直接使用 Dialogflow API 进行互动,以发送最终用户表述和接收意图匹配。下图展示了使用该 API 进行互动的处理流程。

API 处理流程图
  1. 最终用户输入文字或讲述一段话语。
  2. 您的服务在检测意图请求消息中将此最终用户表述发送到 Dialogflow。
  3. Dialogflow 向您的服务发送检测意图响应消息。此消息中包含下列相关信息:匹配的意图以及为该意图定义的操作、参数和响应。
  4. 您的服务会根据需要执行操作,如数据库查询或外部 API 调用。
  5. 您的服务向最终用户发送响应。
  6. 最终用户看到或听到响应。

项目设置和身份验证

在调用 API 之前,您需要设置 GCP 项目和身份验证。您可以按照设置快速入门中的步骤进行操作。

构建代理

在大多数情况下,您应该使用 Dialogflow ES 控制台(访问文档打开控制台)来构建代理。您可以按照控制台快速入门页面上的步骤来创建代理。您还可以使用 Dialogflow API 为高级场景构建代理。许多概念页面侧重于使用控制台来构建代理,但它们也提供了相关 API 类型的链接。

REST、gRPC 和客户端库

您可以通过 REST、gRPC 或所提供的某个客户端库访问 Dialogflow API。如需详细了解这些选项,请参阅 API 使用概览

会话

会话表示 Dialogflow 代理与最终用户之间的对话。您可以在对话开始时创建会话,并在每轮对话中使用该会话。对话结束后,您将停止使用该会话。

在同一时间与不同最终用户进行对话时,不应使用同一个会话。Dialogflow 会为每个活跃会话维护当前活跃的上下文。会话数据将由 Dialogflow 存储 20 分钟。

每个会话均由系统生成的会话 ID 唯一确定。您可以在检测意图请求中提供新的会话 ID 来创建新会话。会话 ID 是一个字符串,最长 36 个字节。系统负责生成不重复的会话 ID。它们可以是随机数字、经过哈希处理的最终用户标识符或任何其他便于生成的值。

检测意图

使用 API 进行互动时,您的服务会直接与最终用户互动。对于每轮对话,您的服务均会调用 Sessions 类型的 detectIntentstreamingDetectIntent 方法将最终用户表述发送给 Dialogflow。Dialogflow 会使用与匹配意图、操作和参数相关的信息以及针对该意图定义的响应来做出响应。服务会根据需要执行操作(例如数据库查询或外部 API 调用),并向最终用户发送消息。此过程会一直持续到对话结束。

您可以在 API 快速入门页面操作方法页面中找到调用检测意图的示例。