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

Dialogflow CX API调用时DTMF无法匹配的解决方法咨询

Dialogflow CX API调用中DTMF无法匹配过渡的问题解决

问题现象

我为Dialogflow智能体配置了DTMF功能,通过API调用时,DTMF能被识别但无法匹配任何过渡,API响应示例:

"match": {
  "intent": null,
  "parameters": null,
  "resolvedInput": "",
  "matchType": "NO_MATCH",
  "confidence": 1,
  "event": "sys.no-match-1"
},
"dtmf": {
  "digits": "1",
  "finishDigit": ""
}

在Dialogflow模拟器中勾选「发送新DTMF输入」时,DTMF可正常识别并匹配意图,响应示例:

"match": {
  "confidence": 1,
  "intent": {
    "displayName": "DTMF_1",
    "name": "projects/xxx/locations/europe-west2/agents/xxx/intents/xxx"
  },
  "matchType": "DIRECT_INTENT"
},
"dtmf": {
  "digits": "1",
  "transformed": true
}

若取消勾选「发送新DTMF输入」,则模拟器行为与API调用一致:DTMF被识别但无法匹配,响应示例:

"match": {
  "confidence": 1,
  "event": "sys.no-match-1",
  "matchType": "NO_MATCH"
},
"dtmf": {
  "digits": "1"
}

解决方案

问题核心在于API请求未将DTMF标记为触发意图匹配的独立输入,需调整API请求的queryInput结构:

  1. 明确指定DTMF为输入类型
    调用detectIntent API时,将queryInput的类型设置为dtmf,而非文本输入。示例请求结构:

    {
      "session": "projects/[PROJECT_ID]/locations/[LOCATION]/agents/[AGENT_ID]/sessions/[SESSION_ID]",
      "queryInput": {
        "dtmf": {
          "digits": "1",
          "finishDigit": "" // 若使用结束符(如#)可在此指定
        },
        "languageCode": "zh-CN" // 替换为你的智能体语言代码
      }
    }
    
  2. 验证智能体配置
    确保智能体中对应的意图或页面过渡已正确配置DTMF匹配规则:

    • 意图的训练短语需包含DTMF配置(如添加dtmf:1作为训练项)
    • 页面过渡条件需设置为匹配对应的DTMF digits
  3. 检查会话状态
    若使用持续会话,需确保当前会话的上下文允许触发DTMF对应的过渡,避免上下文冲突导致无法匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 03:10:17