【问题标题】:Is there a way to specify which intents are active at specific points in a conversation using DialogFlow?有没有办法使用 DialogFlow 指定在对话中的特定时间点处于活动状态的意图?
【发布时间】:2020-01-20 23:08:33
【问题描述】:

我正在为 Google 助理创建一个交互式小说游戏,并且我想在用户做出每个选择后继续推进故事。

我已经创建了新的意图来处理每个新场景,这些意图旨在查看做出了哪些选择。我还想要一些其他一般意图来寻找诸如“我的选择是什么?”之类的问题

我遇到的问题是,当用户转到后续意图时,他们仍然可以说出与先前意图相关联的关键词,而该意图提供了不必要的实现。

什么是最简单的方法来禁止某些意图在某些场景中提供实现,或者指定哪些意图应该在任何时候处于活动状态?

【问题讨论】:

    标签: dialogflow-es


    【解决方案1】:

    要控制用户可以触发哪些意图,您可以使用 Dialogflow 的context 设置可以触发和不可以触发的意图。您可以在意图上设置输出上下文,一旦触发该意图,输出上下文将处于活动状态。当任何上下文处于活动状态时,Dialogflow 将仅匹配配置了与当前活动上下文匹配的输入上下文的意图。

    在上图中,您可以看到一个示例,只有在 CheckingInfo 意图中设置了活动上下文后才能触发 CheckingBalance 意图,并且当上下文处于活动状态时,Dialogflow 将首先查找与上下文匹配的任何意图。有关设置输入和输出上下文的更多信息。看看docs

    【讨论】:

    • 您好 Jordi,非常感谢您的回复,它不仅回答了我的问题。我意识到我最初的问题还不够具体。我试图在此评论中添加细节,但我无法满足所有细节,因此在上面编辑了我的问题。在创建 Lucky Number 应用程序时,我注意到 Google 网站上原始代码实验室中的上下文存在此问题,但在互动小说游戏中变得更加明显,其中意图需要非常具体地针对每个场景。很抱歉,我已经移动了球门柱。再次感谢您的意见..
    • 好的,仅供参考。下次更容易接受问题并创建新问题,然后将新问题告知帮助您的人。它为我们和其他所有人节省了所有编辑的时间。 :)
    • 嗨乔迪。是的,对此感到抱歉。在我编辑了问题之后,我意识到这一点。我试图将其还原为原始版本,但由于我没有保存原始版本,因此不知道该怎么做。
    • 如果您仍然想这样做,在问题的海报旁边,有一个部分告诉您多久以前编辑过该问题。在这里你可以看到历史。每个编辑都显示有一个数字,在这里你应该有一个回滚选项。 meta.stackexchange.com/questions/17038/what-is-a-rollback
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-30
    相关资源
    最近更新 更多