【问题标题】:outputContexts sometimes does not appear in queryResultoutputContexts 有时不会出现在 queryResult 中
【发布时间】: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

https://cloud.google.com/dialogflow-enterprise/docs/reference/rest/v2beta1/DetectIntentResponse?hl=ja

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


【解决方案1】:

根据this document,如果启用webhook slot filling,您将收到一个请求,其中包含每个缺少的必需参数的每个参数。此外,为了补充响应 you referenced,不再需要在参数中添加额外的 original 实体 outputContext parameters will include it

这是一个参数示例:

以及输出上下文:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-10
    • 2012-05-30
    • 1970-01-01
    • 2015-02-11
    • 2023-01-16
    • 1970-01-01
    相关资源
    最近更新 更多