Link Search Menu Expand Document

表单

在PromptDialog中,Form是一个从用户收集一组信息的组件,收集的信息将存储在变量中。 在下面的示例中,机器人向用户收集水果类型和数量信息并在完成后与用户确认。该信息收集对话可以通过具有两个必需变量的表单来实现:水果类型和数量。

Bot : 你好!
      我能为你做什么?
User: 我想买一些水果。

# 通过表单收集用户订购的水果种类和数量
Bot : 好的,你想购买什么水果呢?
User: 我要一些苹果。
Bot : 需要多少水果呢?
User: 需要5个苹果

Bot : 好的,你需要5个苹果。
User: 谢谢
Bot : 不客气! 我会为您准备 5 个苹果!

表单还可以处理其他类似的场景:

  • 查看天气:收集地点和时间,实时查看天气情况。
  • 预订机票:通过获取用户的出行时间和出发机场来预订机票。

如何使用表单?

接下来,我们将介绍如何创建上面提到的用户订购水果的示例。

创建一个“水果”的流程

img.png

接下来,我们创建一个“智能回复”节点来打招呼,并创建一个“用户输入”节点来显示购买水果的意图 img_1.png

创建一个表单

单击用户节点并在弹出菜单中选择表单 img_3.png 表单的名称可以根据功能来设置,这里我们填写水果订单 img_2.png

创建水果订单后需要填写三项信息 img_4.png

名称是否必填描述
Slots需要收集的插槽
Interrupts填写表格或退出表格时可能出现的问题
Confirm表单收集成功后

Slots

我们需要通过Slots收集用户的水果类型数量,然后详细说明如何添加水果类型

单击Slots节点,然后从弹出菜单中选择Add Slot img_5.png

在弹出的Slot窗口中,我们需要注意输入Slot Name,这里填写Slot的名称水果类型(输入名称后按回车即可创建) img_6.png

蓝色部分是保存Slot后自动创建的:

  • “水果类型” : 插槽名字
  • ”-“ : 反问 节点用于输出一句话提示用户输入信息。 img_8.png 双击反问节点并填写 “您想订购什么种类的水果?” 询问用户想要购买什么类型的水果。 img_11.png

反问节点之后,我们需要添加一个用户输入来获取用户需要的水果类型,这时候我们需要标记出想要的水果类型。 img_9.png img_10.png

到目前为止,水果类型变量已创建。

img_12.png 添加数量变量,如下所示: img_13.png

Interrupts

在订购过程中,用户可能会提出一些问题或退出对话

  • 苹果有甜味吗? (回答完问题后,返回From)
  • 事实上,我改变了主意。 今天不买水果了 (退出,停止订单)

苹果甜吗?

img_14.png

跳出表单

Interrupt中添加用户退出的用户输入,并使用break节点退出表单 img_15.png

Confirm

Confirm节点处理集合表单的完成,这里我们向用户确认订单 img_16.png

完整流程图如下

img_17.png img_18.png img_19.png


FAQ

我可以用一句话填补多个插槽吗?

是的,我们支持在一句话中填充多个槽位。 例子:

Bot : 你好!
      我能为你做什么?
User: 我想卖一水果。

Bot : 你想买什么水果?
# 数量 和 水果类型 都在这句话中。
User: 我要5斤苹果。

Bot : 好的,我知道了
User: 谢谢
Bot : 谢谢你的光临,我正在为你准备5斤苹果,还有其它需要的嘛!

在表单中的Slots节点中标注多个变量 form-21