我在使用dialogflow(api.ai)开发代理时遇到问题。我正在使用很多彼此不同的实体值。但是,某些实体值也有类似的同义词,但代理仅返回一个值。
我如何获得所有可能的匹配项或提出问题以解决歧义
例如,我的意图是:告诉我ABC快车的位置
if my entity values are :
entity synonym
15127 ABC express
12345 ABC express
我希望它返回两个值或询问问题以解决此类歧义 我该如何解决 预先感谢
答案 0 :(得分:5)
如果为此目的启用了实现,则可以查看用户所说的值,并进一步询问是否需要区分实体之间的歧义。
让我们想象一下,您正在提取一个称为“火车”的实体。意向中的参数表可能如下所示:
默认情况下,如果用户说ABC express
,则将使用以下参数哈希调用实现Webhook:
"parameters": {
"trains": "15127"
}
这还不足以决定请求是否模棱两可,因为火车15127可能也具有明确的同义词。
您可以配置Dialogflow以发送实体的原始文本以及已解析的值。这意味着您将在Webhook上收到以下信息:
"parameters": {
"trains": "15127",
"original": "ABC express"
}
然后,您可以使用一些简单的逻辑来问另一个问题,即original
的值是否出现在已知歧义同义词的列表中。
要让Dialogflow发送此数据,请修改参数表,使其类似于以下内容:
这将导致原始同义词与解析值一起发送到Dialogflow。