You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Dialogueflow CX Webhook参数验证:如何实现三次重提示及返回no-match?

Dialogflow CX Webhook实现参数验证重试(类似No-Match机制)

Dialogflow CX没有直接返回no-match事件的JSON响应方式,但可以通过自定义会话参数+Webhook逻辑完全模拟原生no-match的重试流程,最多3次后引导至下一流程,具体实现步骤如下:

1. 初始化重试计数参数

在需要验证参数的目标页面(Page)中,添加一个自定义会话参数,比如param_validation_retry_count,默认值设为0,用于记录参数验证失败的重试次数。

2. Webhook中编写验证与重试逻辑

当Webhook接收用户提交的参数后,执行你的验证函数,根据结果分支处理:

  • 参数验证通过:重置param_validation_retry_count为0,返回正常的 fulfillment 响应,引导流程进入下一步。
  • 参数验证失败:
    • 将param_validation_retry_count的值加1。
    • 根据计数返回对应提示并控制流程:
      • 计数=1:返回第一次重试提示,让Dialogflow CX停留在当前页面,等待用户重新输入。
      • 计数=2:返回第二次重试提示,同样停留当前页面。
      • 计数=3:返回最终提示,同时指定跳转至下一流程的目标页面。

3. Webhook响应示例

第一次验证失败(重试计数变为1)

{
  "sessionInfo": {
    "parameters": {
      "param_validation_retry_count": 1
    }
  },
  "fulfillmentResponse": {
    "messages": [
      {
        "text": {
          "text": ["抱歉,您输入的内容不符合要求,请重新输入。"]
        }
      }
    ]
  },
  "targetPage": "" // 留空表示停留在当前页面
}

第三次验证失败(跳转至下一流程)

{
  "sessionInfo": {
    "parameters": {
      "param_validation_retry_count": 3
    }
  },
  "fulfillmentResponse": {
    "messages": [
      {
        "text": {
          "text": ["多次输入无效,我们换个方式处理。"]
        }
      }
    ]
  },
  "targetPage": "projects/[你的项目ID]/locations/[区域]/agents/[代理ID]/flows/[流程ID]/pages/[目标页面ID]"
}

4. 页面配置注意事项

确保当前页面的参数收集设置允许重新收集参数,即当Webhook返回空的targetPage时,页面会重新触发参数收集流程,等待用户输入新的参数值。

内容的提问来源于stack exchange,提问作者Surietha Hammond

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 17:10:25