在PromptDialog中,Form是一个从用户收集一组信息的组件,收集的信息将存储在变量中。 在下面的示例中,机器人向用户收集水果类型和数量信息并在完成后与用户确认。该信息收集对话可以通过具有两个必需变量的表单来实现:水果类型和数量。
Bot : 你好!
我能为你做什么?
User: 我想买一些水果。
# 通过表单收集用户订购的水果种类和数量
Bot : 好的,你想购买什么水果呢?
User: 我要一些苹果。
Bot : 需要多少水果呢?
User: 需要5个苹果
Bot : 好的,你需要5个苹果。
User: 谢谢
Bot : 不客气! 我会为您准备 5 个苹果!
表单还可以处理其他类似的场景:
- 查看天气:收集地点和时间,实时查看天气情况。
- 预订机票:通过获取用户的出行时间和出发机场来预订机票。
- …
如何使用表单?
接下来,我们将介绍如何创建上面提到的用户订购水果的示例。
创建一个“水果”的流程
接下来,我们创建一个“智能回复”节点来打招呼,并创建一个“用户输入”节点来显示购买水果的意图
创建一个表单
单击用户
节点并在弹出菜单中选择表单
表单的名称可以根据功能来设置,这里我们填写水果订单
创建水果订单
后需要填写三项信息
名称 | 是否必填 | 描述 |
---|---|---|
Slots | 是 | 需要收集的插槽 |
Interrupts | 否 | 填写表格或退出表格时可能出现的问题 |
Confirm | 是 | 表单收集成功后 |
Slots
我们需要通过Slots收集用户的水果类型
和数量
,然后详细说明如何添加水果类型
单击Slots
节点,然后从弹出菜单中选择Add Slot
在弹出的Slot窗口中,我们需要注意输入Slot Name
,这里填写Slot的名称水果类型
(输入名称后按回车即可创建)
蓝色部分是保存Slot后自动创建的:
- “水果类型” : 插槽名字
- ”-“ :
反问
节点用于输出一句话提示用户输入信息。 双击反问
节点并填写 “您想订购什么种类的水果?” 询问用户想要购买什么类型的水果。
在反问
节点之后,我们需要添加一个用户输入来获取用户需要的水果类型,这时候我们需要标记出想要的水果类型。
到目前为止,水果类型
变量已创建。
添加数量
变量,如下所示:
Interrupts
在订购过程中,用户可能会提出一些问题或退出对话
- 苹果有甜味吗? (回答完问题后,返回From)
- 事实上,我改变了主意。 今天不买水果了 (退出,停止订单)
苹果甜吗?
跳出表单
Interrupt中添加用户退出的用户输入,并使用break
节点退出表单
Confirm
Confirm
节点处理集合表单的完成,这里我们向用户确认订单
完整流程图如下
FAQ
我可以用一句话填补多个插槽吗?
是的,我们支持在一句话中填充多个槽位。 例子:
Bot : 你好!
我能为你做什么?
User: 我想卖一水果。
Bot : 你想买什么水果?
# 数量 和 水果类型 都在这句话中。
User: 我要5斤苹果。
Bot : 好的,我知道了
User: 谢谢
Bot : 谢谢你的光临,我正在为你准备5斤苹果,还有其它需要的嘛!
在表单中的Slots
节点中标注多个变量