本文继续围绕工业级业务对话平台和框架Rasa 的Action类型的FormAction及FormValidationAction源码进行解析。
一、Rasa Action类型的FormAction及FormValidationAction源码详解
- Action类型的FormAction和LoopAction类型的FormAction区别与联系分析
前面谈到的action,form,loop等是属于rasa.core.actions中的内容,FormAction是继承自LoopAction。rasa.core代表了Rasa server,下面是rasa.core.actions中所包含的文件:
Rasa由三部分组成:用户端,Rasa server端和Rasa微服务端(action server)。在rasa.core.actions里,RemoteAction的run方法使用了endpoint的request方法,payload为json格式,这是Rasa server请求action server,也就是请求rasa_sdk中的内容:
在方法request里,是通过HTTP POST的方式来发送请求,在这里使用了aiohttp,Rasa server会把domain的信息,tracker的信息封装在json格式的请求里,当action server收到后会执行具体微服务action的操作,然后把处理结果返回给Rasa server:
在Rasa 3.x中,rasa_sdk中的FormAction已经被deprecated。
2. Rasa SDK Action源码详解以及与Rasa core中定义的Action的区别
在rasa_sdk的interfaces.py文件里定义的Action与core中定义的Action类似,通