【问题标题】:Dialogflow contexts and entitiesDialogflow 上下文和实体
【发布时间】:2018-08-18 20:25:45
【问题描述】:

我有两个关于 Dialogflow 的简短问题。我觉得这些应该是相对简单的问题,但我似乎找不到答案。

1) 有没有办法指定在一个上下文或另一个上下文处于活动状态时应该触发一个意图?我知道您可以列出多个输入上下文,但据我了解,只有在所有这些上下文都处于活动状态时才会触发该意图。如果其中任何一个处于活动状态,是否有任何方法可以触发意图?

2) 有没有办法使用履行为实体赋值?我认为履行通常在另一个方向上起作用,但我想在 Dialogflow 中创建一个实体,通过履行为其分配一个值,然后能够简单地调用 Dialogflow 中的实体,所以我不必继续使用不需要的时候实现。我无法通过 Dialogflow 本身分配它们的原因是它不是基于用户输入。

我非常感谢您对这两个问题的帮助。

非常感谢

【问题讨论】:

    标签: dialogflow-es


    【解决方案1】:

    答案1。否。当您设置为输入上下文且全部处于活动状态的上下文时,仅触发意图或触发事件。

    if((all_input_contexts_active && user_says_active) || (event_is_active)){
       trigger intent
    }else{
       trigger fallback intent
    }<br><br>
    

    Ans2。我不这么认为。 “MAYBE”可能使用您需要检查的 Dialogflow SDK。但是使用 webhook 似乎不受支持。

    【讨论】:

      【解决方案2】:

      基于一个上下文或另一个上下文的触发器

      不,但您有一些方法可以解决这个问题。您是正确的,输入上下文必须与列出的 所有 上下文匹配。

      但您也可以设置多个上下文作为传出上下文。

      因此,例如,如果您当前有 context-a 和 context-b,您可以进行更改,以便同时设置 context-a 和 context-ab,或者同时设置 context-b 和 context-ab。

      然后你可以有一个在 context-ab 上触发的 Intent,你在设置 -a 或 -b 时设置了它。

      在履行期间分配实体值

      是的。您可以使用 Dialogflow 的 API 来设置用户实体(有时称为会话实体 - 它们是相同的东西)。如果您使用 V1 API,您将使用 /userEntities 端点。如果您正在使用 V2 API(并且应该),您将使用 sessions.entityTypes 方法。

      无论哪种方式,您都需要先创建实体类型,但不为其提供要使用的实际实体(或一些默认实体),然后,作为实现的一部分,使用实体和同义词更新实体类型。该会话期间用户的进一步调用将使用您设置的调用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多