Dialogflow - 概述

关于 Dialogflow,在使用之前您需要了解一些事项。为了正常工作,传统计算机系统需要可预测且结构化的输入,这有时会使使用界面变得困难且不自然。有时,最终用户会发现自己无法理解输入的结构,也无法找出该做什么。理想情况下,界面应该能够通过最终用户所说的自然语言准确确定用户想要什么。

Dialogflow 的作用

例如,假设用户问"今天天气怎么样"?其他用户可能还会问 −

  • 现在天气怎么样?

  • 今天的气温怎么样?

  • 10 月 20 日的天气怎么样?

您知道,使用语言经验来解决这些基本问题可能具有挑战性。自然语言处理和解释需要非常强大的语言解析器。Dialogflow 提供了这种类型的解析器,以便您可以为最终用户提供出色的对话体验。

Dialogflow 的主要组件

代理、意图和实体是 Dialogflow 的三个主要组件。这些都是帮助用户获得轻松对话体验所必需的。让我们在下一节中逐一讨论这三个组件 −

代理

Dialogflow 代理是一个虚拟代理,负责管理最终用户对话。能够理解人类语言细节的模块称为代理。为了使您的应用能够在讨论期间理解最终用户的文本或语音,Dialogflow 将其转换为结构化数据。Dialogflow 代理可以管理系统所需的对话类型。

Dialogflow 代理与实际呼叫中心的代理相同。由于他们已经准备好处理对话情况,因此他们中的任何人都不需要在指令中过于精确。

意图

最终用户对特定对话轮次的意图由意图分类。每个代理都需要设置多个用户,组合代理能够管理整个对话。当用户写出或说出被称为最终用户表达的内容时,Dialogflow 会寻找最终用户表达与代理的最佳利益之间的一致性。意图分类是意图匹配的另一个术语。

例如:如果您必须为天气创建一个代理,请确保它可以识别并响应最终用户关于天气的查询。设定天气预报问题的目标是下一个阶段。

用户问"天气预报是什么?"。Dialogflow 检查并将预报提供的含义与用户的表达进行比较。如果我们想从最终用户表达中提取重要信息,例如天气预报的位置和正确时间,我们必须明确我们的目标。系统需要收集的信息来响应系统相关请求。

实体

Dialogflow 使用实体来识别和提取自然语言输入中的相关数据。实体可帮助您的代理了解特定用户输入背后的原因,而意图可让它检测用户提到的特定数据,如产品名称、带单位的数量、街道位置等。将有一个实体链接到您想要从用户请求中检索的每个重要数据。

Dialogflow 控制台

Dialogflow 控制台是由 Dialogflow 设计的 Web 界面。它可用于创建、评估和管理代理。Dialogflow 控制台和 Google Cloud Platform (GCP) 控制台之间存在差异。

虽然 GCP 控制台处理 Google Cloud 服务参数(如资源分配和付款),但 Dialogflow 控制台主要处理 Dialogflow 代理管理。

您还可以使用 Dialogflow 控制台轻松创建新代理。

上下文

Dialogflow 的上下文的工作方式与自然语言上下文的工作方式类似。例如,当有人说"它们是蓝色的"时,您必须弄清楚"它们"是谁或什么。Dialogflow 通过根据上下文将用户意图与正确的目的进行匹配来执行类似操作。

上下文使对话管理变得更容易。可以使用简单的名称构建输入和输出上下文。这些设置有助于集中对话并选择正确的目标。当意图匹配时,输出上下文变为活动状态。之后,Dialogflow 会查找属于活动输入上下文的意图。

后续意图

后续意图可用于自动为意图对构建上下文。后续意图是其连接的父意图的子意图。创建后续意图时,输出上下文会自动添加到父意图,具有相似名称的输入上下文也会添加到后续意图。后续意图只匹配一种情况,即在上一轮对话中表达父意图时。使用 Dialogflow 可以在多个级别创建嵌套的后续意图。

Dialogflow 中预定义的后续意图之一(如取消、是、否等)可以显示为典型的最终用户响应。我们还可以生成自己的后续意图,以控制客户的响应。

用户与集成的交互

Dialogflow 与各种聊天平台兼容,例如 Google Assistant、Slack 和 Facebook。您可以从多个集成选项中进行选择,为这些平台中的任何一个创建代理。使用 Dialogflow 可以轻松实现直接用户通信,这使您能够更加专注于开发代理。

用户与 API 的交互

如果您决定不使用任何集成的集成选项,那么您将需要编写代码来直接与用户交互。对于每次交换,您的代码都需要连接到 Dialogflow 的 API。您可以通过这种方式传达用户的消息并再次获得他们的预期含义。

下图显示了使用 API 的过程。

用户与 API 的交互

以下是用户与 Dialogflow 中的 API 交互的过程 −

  • 最终用户正在输入或说出单词。

  • 最终用户的表达由您的服务在检测意图请求消息中发送给 Dialogflow。

  • 之后,Dialogflow 会告诉您的服务它打算识别响应。该消息包含有关意图的参数、操作、响应和匹配意图的信息。

  • 必要的操作(例如进行外部 API 调用或执行数据库查询)由您的服务处理。

  • 最终用户从您的服务接收响应。

  • 答案对最终用户可见或可听。

集成的实现

当意图匹配时,代理将自动使用简单且预编程的消息进行响应。但是,如果您选择集成选项,则可以使用"实现"来提供更灵活和动态的响应。

Dialogflow 通过联系您配置的服务之一来响应已启用实现的意图。例如,如果用户想要安排周一购物,那么您的服务将检查数据库并告知他们是否开放。

有一个设置允许实现每个目标。如果意图要求系统做出动态响应或操作,则必须启用履行。如果未启用履行,代理将使用您为该意图提供的静态消息进行回复。

如果启用履行并且意图匹配,则 Dialogflow 会发送包含详细信息的请求。Dialogflow 将从您的系统获得响应,其中包含您进一步操作所需的信息。