我在Dialogflow v2上有一个代理项目。我的代码通过Web API评估代理(我使用不带任何dialogflow库的python代码)。
要检查实体的原始值,请使用outputContexts
函数在queryResult
中使用detectIntent
。
但是我发现queryResult
有时不包含outputContexts
。结果取决于输入文本的意图。我在代理中使用自定义实体和系统实体。而且我发现sys.date
实体有时不通过Web API返回outputContexts
。
但是,当我通过Dialogflow GUI控制台测试相同的输入文本时,它将返回outputContexts
。
outputContexts []:对象(上下文)
输出上下文的集合。如果适用, outputContexts.parameters包含名称为.original的条目,其中包含原始参数值。 查询。
我发现outputContexts
仅在对话框中缺少某些必需插槽时才会显示。例如,intentA
包含两个必需的插槽。如果我输入的文本仅包含一个槽,则响应显示outputContexts
,如果文本包含两个槽(所有槽,即allRequiredParamsPresent=True
),则响应不显示outputContexts
。真的吗?很难从Dialogflow文档中阅读此规范。
我找到了一个不错的解决方案,可以从以下线程获取原始实体值。为了获得原始值,我需要准备特殊实体以从任意插槽中提取original
数据。 original
适用于系统和自定义实体。
dialogflow ambiguity with same synonyms for different entity values
答案 0 :(得分:0)
根据this document,如果启用webhook slot filling,则对于每个缺少的必需参数,您将收到带有每个参数的请求。另外,为了补充响应you referenced,不再需要在参数outputContext parameters will include it中添加其他original
实体。
以下是参数示例: