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