【问题标题】:DialogFlow- Invoke intent without training phrases and saving responseDialogFlow - 无需训练短语即可调用意图并保存响应
【发布时间】:2019-03-18 19:32:06
【问题描述】:

我正在尝试使用 DialogFlow 在 Actions 中构建一个基本的“问答”应用。现在我有两个意图:

意图 1:用户说“问我一个问题”,而意图回答“告诉我关于你自己”

意图 2:我想捕捉用户对“告诉我你自己”的反应,但坦率地说,没有办法写出足够多的训练短语来涵盖它。

我尝试关注this suggestion,并让 Intent 1 发送一个名为 save_response 的输出上下文,而 Intent 2 的输入上下文为 save_response。然后对于我使用的训练短语@sys.any:save_response

当我尝试此操作时,它每次都会调用默认的回退意图。想想我可能哪里出错了?

【问题讨论】:

    标签: dialogflow-es actions-on-google


    【解决方案1】:

    您需要创建 2 个意图,在第一个意图中,您的训练短语将是 Ask me a question,输出上下文将是 save_response,响应将是您想向用户提出的问题。

    然后在意图 2 中,您需要执行以下操作:

    • 将输入上下文设置为save_response,这样它只会 当上下文中出现 this 时触发

    • 转到操作和参数部分并创建一个名为 answer,实体类型为@sys.any

    • 然后转到训练短语部分并添加任何训练短语,然后 突出显示所有内容,然后选择您刚刚创建的参数

    • 之后,您的训练短语和实体部分将查找 如下图所示

    • 保存意图,您就完成了

    希望对你有帮助。

    【讨论】:

    • 标记为正确,因为这回答了我的具体问题
    【解决方案2】:

    一般来说,训练短语包含@sys.any 的 Intent 可能并不总是如您所愿。

    最好有一个设置了输入上下文的后备意图,以确保您仅捕获处于该状态的内容(在您的情况下为save_response),然后使用在您的履行中捕获的全文。

    这样做时,您不需要您描述的“意图 2” - 或者更确切地说,这将是您在 Dialogflow UI 中创建的后备意图。如果没有其他 Intent 与用户所说的内容匹配,则会触发 Fallback Intent。

    要创建后备意图,请选择 Dialogflow UI 右上角的三个点

    然后选择“创建后备意图”

    Fallback Intent 编辑器与普通 Intent 编辑器非常相似。最大的不同是你输入的短语(而且你不需要输入任何)会明确匹配这个Intent,并且没有参数。其他方面(名称、传入上下文、开启履行)是相同的。

    【讨论】:

    • 冒着听起来迟钝的风险,这是否意味着保留两个意图,但故意让第二个意图失败,以便将上下文传递给默认的故障回复意图?否则,如何确保调用 Fallback?
    • 我的建议是使用输入上下文 save_response 创建一个备用意图,其中包含您严格不希望触发意图 2 的短语。
    • 哦,是的。这听起来是个好主意。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多