dialogflow-es - 如何让 Dialogflow 接受所需实体的任何输入
问题描述
所以我正在尝试创建一个对话流代理,作为一种面试官。
例如,代理有时会问“您有任何餐饮服务经验吗?”
我创建了实体“以前的职位”、“以前的雇主”和“持续时间”,并根据需要对它们进行了标记。使用自动扩展并提供足够的示例用户输入,代理可以毫无问题地将它以前从未见过的东西分配给这些实体(例如,“是的,我在 X 公司担任 X 年”或“是的,对于X 年我是 X 公司的 X”)。
但是,当用户没有提供所有必需的实体时,我会遇到提示问题,我认为这很常见,例如,用户可能会简单地回答“是”。如果用户不提供这些实体之一,则提示将询问“您的职位是什么”和/或“您在哪里工作”和/或“您在那里工作了多长时间”。但是,即使选中了“自动扩展”,系统也不会接受任何与我提供的示例实体之一不匹配的用户输入(“Taco Bell”、“4 年”、“cook”、“等” ),它只是不断重复这个问题。当然,我无法预测所有可能的反应。
我知道还有其他方法可以解决这个问题(例如提示用户在原始问题中输入三个类别或将其分解为多个意图),但我真的很想找到一种方法来解决这个特定问题,如果可能的话订购一个不那么笨重的聊天机器人。
那么,有没有办法让所需实体接受任何输入的提示?
解决方案
如果你能问一个没有多重答案的问题会更好。您应该以这样一种方式来表达它,使用户根据您的意图以所需的方式自动回答。
你提出问题的方式:“你有餐饮服务经验吗?”
它的答案大多是“是”或“否”。
因此,我建议您将两个后续意图捕获YES
,NO
并在YES
后续意图中捕获其他必需的实体。在这里您应该将它们标记为required
.
此外,在最初的父意图中继续收集相同的实体,但不要将它们标记为required
. 这样,您将自动捕获诸如“是的,我在 X 公司担任 X 年 X 年”之类的用户响应。
现在,如果用户只说“是”,您将有后续意图来捕获实体,如果信息是在父实体中预先提供的,您可以将后续意图的上下文生命周期设置为“0”这样YES
就不会调用后续操作。
您将需要使用上下文和多个意图来捕获所有场景。
查看以下链接,了解如何设计对话并遵循最佳实践。这些可以应用于几乎所有聊天机器人应用程序。
推荐阅读
- maven - 具有非数字版本的 Maven 版本插件
- wordpress - 其他用户 wp 主题选项显示我试图隐藏但代码不起作用
- c++ - 在同一 CPU 内核上执行的 OpenMP 线程
- ios - Xcode 单元测试 - 添加一个可在所有测试类中使用的通用函数
- react-native - [React-Navigation]如何在没有警告的情况下“在没有 Navigation 道具的情况下导航”“您应该只在您的应用程序中显式呈现一个导航器......”
- html - CSS Grid use the rest of free space for all elements between
- c++ - 尝试在 Windows 上重定向标准输出和标准错误 - _fileno(stdout) 返回 -2
- php - wp_signon() 不起作用,如果管理员没有在前面登录,他就无法访问 wp-admin?
- excel - PowerPoint 冻结和代码继续
- x86 - 这些年英特尔为什么要改变静态分支预测机制?