默认情况下,您的代理会使用静态响应来响应匹配的意图。如果您使用的是某个集成选项,则可以使用 fulfillment 提供更动态的响应。当您为意图启用 fulfillment 时,Dialogflow 会通过调用您定义的服务来响应该意图。例如,如果最终用户希望在星期五安排理发,那么您的服务可以检查数据库,并使用星期五的可预约时段信息来响应最终用户。
每个意图均有一项启用 fulfillment 的设置。如果某个意图需要您的系统执行某项操作或需要动态响应,则应为该意图启用 fulfillment。如果匹配的意图未启用 fulfillment,则 Dialogflow 会使用您为该意图定义的静态响应。
如果匹配的意图启用了 fulfillment,则 Dialogflow 会向您的网络钩子服务发送请求,其中包含有关匹配的意图的信息。您的系统可以执行任何所需操作,并对 Dialogflow 作出响应,提供有关如何进行后续操作的信息。启用 fulfillment 后,只有在网络钩子服务失败时,系统才会使用您为意图定义的静态响应。下图展示了 fulfillment 的处理流程。
- 最终用户输入文字或讲述一段话语。
- Dialogflow 将最终用户表述与意图相匹配,并提取参数。
- Dialogflow 向您的网络钩子服务发送网络钩子请求消息。此消息中包含下列相关信息:匹配的意图以及为该意图定义的操作、参数和响应。
- 您的服务会根据需要执行操作,如数据库查询或外部 API 调用。
- 您的服务向 Dialogflow 发送网络钩子响应消息。此消息包含应发送给最终用户的响应。
- Dialogflow 会将响应发送给最终用户。
- 最终用户将看到或听到响应。