问题描述
我正在尝试复制一个场景,其中alternate matched intent
返回具有接近匹配/接近置信度得分的其他意图。但是,API始终会返回置信度得分最高的1个意图,并且会跳过所有其他意图,是否有任何办法使其功能类似于ES版本?
遵循的步骤-使用语音Check balance
创建Intent1,并使用test balance
创建Intent2。并且在测试窗口中,如果我键入Balance
,则它总是只返回Intent2
"Alternative Matched Intents": [
{
"Id": "84383366-215f-40a3-9ba6-464238f0c2aa","score": 0.5985087752342224,"displayName": "Intent2","Type": "NLU","Active": true
}
]
解决方法
“替代匹配的意图”字段可帮助您调试当前流model中与用户话语匹配的意图,其中也将包含匹配的意图本身。
此外,这些意图只是流模型中拾取的流中所引用的意图(例如,流页面中的转换路线所使用的意图)。
请注意,流程中未引用的意图将不会包含在“替代匹配的意图”字段中。
在以下示例场景中,我们可以使用“替代匹配的意图”字段进行调试:
如果您有Intent-1和Intent-2,它们都包含训练短语“ hello”,并且它们都在当前流中被引用(请参见上图-Intent-1在Intent1页面和Intent-2中被引用在Intent2页面中被引用)。当用户在起始页上说“你好”时,将触发Intent-1,并且Intent-1和Intent-2都将包含在“替代匹配的Intent”字段中。请注意,代理仍将用户的话语与Intent-2相匹配,而页面/转换的配置(即状态模型)导致Intent-1被触发。
如果您有Intent-3,它的训练短语为“ check balance”,并且在当前流程的较低级别中引用。当用户在起始页上说“检查余额”时,由于当前的流量,NO INTENT将不匹配,因此必须先经过Intent-1和Intent-2才能匹配Intent-3(请参见上图- Intent3页面中引用了Intent-3)。但是,Intent-3也将包含在“替代匹配的Intents”字段中,因为它在当前流程中被引用。
此外,如您在上面的结果中所见,有一个“活动”字段,用于指示意图是否处于活动状态(该值是活动的,则为true,否则为false)。基本上,活动意图是当前范围内的意图。例如,如果用户当前在“ Intent1”页面上,则仅将当前流(START_PAGE)的过渡路线或当前页面(Intent1的)过渡路线或过渡路线组中的意图视为活动意图。有关更多详细信息,请参见https://cloud.google.com/dialogflow/cx/docs/concept/handler#scope。