【问题标题】:How to trigger a same followup event for every Intent without webhook in API.AI?如何在 API.AI 中为每个没有 webhook 的 Intent 触发相同的后续事件?
【发布时间】:2018-07-25 12:39:07
【问题描述】:

我正在使用 Api.Ai 创建一个机器人。我有一组 30 个带有响应的意图。我希望 Dialog flow 每次用户询问“你对答案是否满意”时询问用户一个后续问题。基本上,对用户提出的每个问题进行跟进,机器人将回复答案并跟进问题。

场景:

User: What is the Maternity insurance plan? (No action here)
Bot: Reply with some Response from Text Response.
Bot: Are you satisfied with the answer?
User: YES/NO

【问题讨论】:

    标签: actions-on-google dialogflow-es


    【解决方案1】:

    如果没有 webhook,它会很混乱,并且可能会时不时地调用后续意图或触发不需要的意图。最好为您想要的每个意图或使用 webhook 并以编程方式处理此问题。

    不过,如果您只想使用 Dialogflow 执行此操作,那么您可以这样做:

    1. 为 Yes 创建一个单独的新意图,为 No 创建一个单独的意图,并将所有相应的同义词放入 User Says 中进行训练。
    2. 将输入上下文“are-you-satisfied”(或您选择的其他)添加到“是”意图和“否”意图。不应将其他上下文放入输入上下文中。
    3. 在您询问“您对答案满意吗?”问题的意图中,添加一个输出上下文为“are-you-satisfied”,生命周期为 2 或 3。
    4. 根据用例的要求将其他上下文保留在输出上下文中。

    发生这种情况时,您将有 2 个带有输入上下文“are-you-satisfied”的意图,并以 YES 或 NO 调用。不会有这样的后续意图。每当输入上下文出现在输出上下文中并且说 YES 或 NO 时,这两个将充当后续操作。

    但正如我之前所说,当在 YES 或 NO 之后还有其他活动的上下文准备好触发时,它可能会变得混乱。在这种情况下,它可能会根据活动上下文触发不同的意图,并且可能不会被用户喜欢。

    更新 如果您使用的是 webhook,您可以这样做:

    1. 您可以使用helpers "ask.for.permission.confirmation" 并在单个 Intent 的 webhook 处理程序方法中检查if (confirmationGranted) { ... }


    2. 如上创建两个 YES/NO Intent,将如上的输入上下文和输出上下文放入各自的 Intent。
    3. 为 YES 和 NO 创建两个 webhook 处理函数。
    4. 当这些意图被触发时,检查什么是活动上下文并相应地继续,就像

      switch (activeContext){ case context1: .... case context2: .... }

    5. 您可能需要操纵上下文的生命周期,以免之后触发错误的意图。

    我的选择是使用辅助方法或单独有 YES 或 NO 后续意图。

    【讨论】:

    • 那么如何使用Webhook,因为如果我使用“followupEventInput”,它将直接触发反馈意图,而不显示该特定问题的文本响应。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多