在Rasa中,事件(Events)是对话过程中的关键组成部分,它们代表了对话的状态变化。
以下是Rasa中一些主要的事件类型及其描述:
-
Slot Events - 槽事件
slot
:在对话的上下文中设置一个槽(slot)。- 它可以为槽赋值,或者通过将值设置为
null
来重置槽。 - 当槽被同名的实体填充时,这个事件会被自动跟踪。
- 它可以为槽赋值,或者通过将值设置为
-
Conversation Control Events - 对话控制事件
reset_slots
:将所有槽重置为null
,这不会触发任何动作,也不会自动跟踪。reminder
:安排在未来某个时间点触发的意图,这需要自定义动作来设置,不会自动跟踪。cancel_reminder
:取消一个已安排的提醒,这也不会自动跟踪。pause
:暂停对话,直到显式地恢复对话之前,不会预测任何动作。resume
:恢复之前暂停的对话,添加此事件后,机器人会重新开始预测动作。followup
:强制执行一个后续动作,绕过动作预测。
-
Conversation State Events - 对话状态事件
restart
:重置追踪器,清除所有对话历史和状态。session_started
:开始一个新的对话会话,重置追踪器并运行默认动作ActionSessionStart
。
-
User and Bot Utterance Events - 口语事件
user
:表示用户向机器人发送了一条消息,这会被自动跟踪。bot
:表示机器人向用户发送了一条消息,这通常不会由自定义动作显式返回,而是返回响应。
-
Action Execution Events - 动作执行事件
action
:记录机器人调用的动作,只有动作本身被记录,动作创建的事件在应用时会单独记录。
-
Undo Events - 撤销事件
rewind
:撤销最后一个用户消息的所有副作用,并从追踪器中删除最后一个user
事件。undo
:撤销最后一个机器人动作的所有副作用,并从追踪器中删除最后一个机器人动作。
这些事件共同构成了Rasa对话管理的框架,允许开发者精确控制对话流程,并通过自定义动作来扩展机器人的功能。