当意图在运行时中匹配时,Dialogflow 代理会继续收集最终用户提供的信息,直到最终用户为每个必需参数提供数据。 此过程称为“槽位填充”。
默认情况下,Dialogflow 在从最终用户收集到所有必要数据之前不会发送 fulfillment 网络钩子请求。
如果启用了用于槽位填充的网络钩子,Dialogflow 将在槽位填充期间针对每轮对话发送一次 fulfillment 网络钩子请求。
在大多数情况下,借助参数提示就足以收集所有必需的参数;而使用网络钩子进行槽位填充,您可以在收集参数时定义更具体的代理逻辑。例如,网络钩子可以处理后续问题自定义,或设置无法从最终用户响应中检索的参数槽,例如从数据库中检索。
为槽位填充启用网络钩子
如需在设计时为槽位填充启用网络钩子,请执行以下操作:
- 前往 Dialogflow ES 控制台。
- 选择一个代理。
- 在左侧边栏菜单中选择意图 (Intents)。
- 选择一个意图。
- 向下滚动到 Fulfillment 部分。
- 开启启用网络钩子调用进行槽位填充 (Enable webhook call for slot filling)。
- 点击保存 (Save)。
在运行时为槽位填充调用启用网络钩子
您的网络钩子服务收到的网络钩子请求消息包含一个 queryResult.parameters
字段。此字段包含最终用户提供的当前参数集。尚未收集的值被设置为空字符串。
如需查看设置参数的网络钩子响应消息示例,请参阅 网络钩子响应示例。