【发布时间】:2019-02-15 09:02:05
【问题描述】:
我在 Dialogflow v2 有一个代理项目。我的代码通过 Web API 评估代理(我使用没有任何对话框流库的 python 代码)。
为了检查实体的原始值,我在queryResult by detectIntent 函数中使用了outputContexts。
但我发现queryResult有时不包含outputContexts。结果取决于输入文本的意图。我在代理中使用自定义实体和系统实体。我发现sys.date 实体有时不会通过 Web API 返回outputContexts。
但是,当我通过 Dialogflow GUI 控制台测试相同的输入文本时,它会返回 outputContexts。
outputContexts[]: 对象(上下文)
输出上下文的集合。如果适用, outputContexts.parameters 包含名称为 .original 的条目,其中包含在 查询。
更新 1
我发现outputContexts 仅在对话框中缺少某些 必需 插槽时出现。例如,intentA 包含两个必需的插槽。如果我输入的文本只包含一个槽,则响应显示outputContexts,如果文本包含两个槽(所有槽,即allRequiredParamsPresent=True),则响应不显示outputContexts。真的吗?很难从 Dialogflow 文档中阅读此规范。
更新 2
我找到了一个很好的解决方案,可以从下面的线程中获取原始实体值。为了获得原始值,我需要准备特殊的实体来从任意槽中提取original 数据。此original 适用于系统和自定义实体。
dialogflow ambiguity with same synonyms for different entity values
【问题讨论】:
-
这看起来很奇怪。您能否更新问题以包括您正在拨打的电话的具体示例、它应该匹配的 Intent 的屏幕截图以及您得到的说明问题的响应?
-
嗨!你能看到我更新的问题吗?我找到了规律。由于机密问题,很难显示我的代理人的全部数据。对此我感到非常抱歉。
标签: dialogflow-es