本文继续围绕工业级业务对话平台和框架Rasa微服务Action自定义及Slot Validation进行解析。在使用微服务自定义action时,一般会涉及到对话中slots的操作,如在购物场景下从用户输入信息提取到slots之前,需要对用户的身份信息,支付信息等进行校验,通过后对话机器人才会进行下一步的操作。
一、Rasa微服务Action自定义及Slot Validation详解
- Rasa Action剖析及代码示例
Action就是在一个对话状态的response里所采取的next action,它具有唯一的标识名称,因为需要用这个名称注册微服务。
Action是任何自定义action的父类,自定义action需要继承它并覆写两个必须的方法:name和run。Rasa action server在接收到执行一个action的request时,会根据name方法返回的值来调用这个action。
自定义action的框架样例如下,name方法返回的值必须是唯一的:
方法name:定义了action的name,它被用于注册微服务。
返回action_name,类型为str
方法run:执行action的业务逻辑。
参数:
-dispatcher:dispatcher用于发送消息给用户,用法为dispatcher.utter_message()或参考CollectingDispatcher相关API说明
-tracker:当前用户的状态跟踪器,你可以使用tracker.get_slot(slot_name)访问slots的值,可以使用tracker.latest_message.text从tracker中获取用户最新消息。
-domain:对话机器人的domain系统配置
返回e