Fulfillment

每轮对话过程中,代理必须通过回答问题,询问信息或终止会话来响应最终用户。您的代理可能还需要与您的服务联系,以生成动态响应或执行操作。Fulfillment 用于完成所有这些操作。

fulfillment 可能包含以下任一选项:

  • 静态响应消息。
  • 用于动态响应和/或执行操作的网络钩子调用。
  • 用于设置或替换参数值的参数预设。

在代理每轮对话期间,系统可以(且有时需要)调用多个 fulfillment,每个 fulfillment 都可以生成响应消息。Dialogflow 会在响应队列中维护这些响应。 代理的每轮对话结束后,Dialogflow 会将已排序的响应发送给最终用户。

ES fulfillment 仅限于连接 webhook 服务。 CX 的 fulfillment 范围扩大了,因此现在涵盖了所有类型的提示和响应。

Fulfillment 用例

在所有需要响应消息的地方使用 Fulfillment:

对于每种用例,控制台都会打开一个 Fulfillment 修改面板。

Fulfillment 屏幕截图

静态响应消息(对话选项)

静态响应消息是您在设计时定义的代理响应。您可以在创建 fulfillment 时定义它们。在运行时,这些响应将添加到响应队列中。

有几种类型的响应消息,我们将在下面的小节中进行介绍。使用控制台时,Fulfillment 面板有一个初始文本响应消息卡片,但您可以点击添加对话框选项以给其他响应消息类型添加更多卡片。

文本

文本响应消息向最终用户发送文本对话框。如果您的检测意图 API 调用或集成调用使用语音合成,则此文本将用于生成音频内容。在这种情况下,提供的文本可以选择使用语音合成标记语言 (SSML)

您可以定义多个文本响应卡片,并在每个卡片中定义多个文本响应。如果您定义了多个卡片,那么这些卡片会在运行时针对单个响应进行串联。如果您在一个卡片内定义多个响应,那么会在运行时随机选择该卡片中的一条消息。

这些短信可以包含参数引用

自定义负载

某些集成支持自定义载荷响应以处理丰富的响应。这些自定义载荷以集成文档中定义的 JSON 格式提供。例如,请参阅 Dialogflow Messenger 自定义载荷格式

您还可以将自定义载荷发送到您开发的集成。Dialogflow 不会处理这类载荷,因此您需要在自己的业务逻辑中进行处理。

在线客服人员交接

此响应会告知检测意图 API 调用方是否应将对话移交给人工客服。Dialogflow 仅使用以下信号来识别出于衡量目的而取消的会话,并且不会以任何方式更改会话状态。您的系统或集成可以使用此信号来采取任何必要的交流措施。Dialogflow 不会对此数据应用任何结构,因此您可以选择任何适合您系统的结构。

对话成功元数据

此响应会告知检测意图 API 调用方与 Dialogflow 代理之间的对话成功。Dialogflow 仅使用此信号来识别成功进行衡量的会话,并且不会以任何方式更改会话状态。您的系统或集成可以使用此信号执行任何必要的操作。Dialogflow 不会对此数据应用任何结构,因此您可以选择任何适合您系统的结构。

播放预先录制的音频

此响应会为支持此功能的集成播放音频文件。您必须提供音频文件的可公开访问网址。例如,您可以使用 Cloud Storage 托管公开文件

条件式响应

此响应类型用于条件式响应。基本格式为:

if [condition]
  [response]
elif [condition]
  [response]
elif [condition]
  [response]
else
  [response]
endif

其中:

  • [condition]路由条件使用的格式相同
  • [response] 是文本响应
  • elifelse 块是可选的

例如:

if $session.params.user-age >= 21
  Ok, you may enter.
else
  Sorry, you cannot enter.
endif

网络钩子调用

调用 fulfillment 并且 fulfillment 具有网络钩子时,代理会向您的网络钩子发送请求。您的网络钩子可以在您的服务中执行任何必要的操作,提供动态响应消息,替换参数值以及更改当前页面。

参数预设

您可以使用 fulfillment 提供用于设置或替换当前参数值的预设。系统会在解析静态响应消息或调用网络钩子之前应用这些预设。

响应队列

在代理每轮对话期间,系统可以(且有时需要)调用多个 fulfillment,每个 fulfillment 都可以生成响应消息。Dialogflow 会在响应队列中维护这些响应。 代理的每轮对话结束后,Dialogflow 会将已排序的响应发送给最终用户。