RASA 对话管理系统DEMO及资源:五,服务化部署
发布于 2021-04-09 01:11
一,任务目标与场景
RASA自身有许多接口,但主要是US国的社交软件,并没有为中国社交软件提供接口。
另外,RASA有一个专门的项目,用于前台,即Rasa X。这个项目并不免费。笔者没有试过这个项目,它应该也是利用http或socket协议与rasa open source进行通信实现的,与其绕个弯用RasaX,不如直接调用。
二,实现方法
Rasa可以单独作为NLU服务存在,也可以使用NLU+DM一体化。
本例中使用后者,因其调用action,需要DM功能。
当与前台进行交互时,是前台与core进行交互,当回复中存在需要调用action时,由core与action服务进行交互。这种沟通方式的好处是,实际的action处理过程,对前台是透明的。
三,相关设置
1) core服务
1, 训练模型:
rasa train
处理完成训练,训练模型数据保存在./models中
2, 设置http api
官方文件参考链接:https://rasa.com/docs/rasa/http-api,其中关于接口的描述:
By default, running a Rasa server does not enable the API endpoints. Interactions with the bot can happen over the exposed webhooks/<channel>/webhook
endpoints.
即可以对暴露webhooks/<channel>/webhook这个接口,只需要在rasa启动时使用命令:
rasa run --enable-api
注:使用此命令,默认的端口是5005,如果需要指定端口,需要使用-p参数,具体帮助可直接rasa -h查看
本例使用rest这个channel,只需在endpoint.yml中添加一行:
rest:
关于调用的返回格式,参见:https://rasa.com/docs/rasa/pages/http-api
对于本例的源码,如果直接rasa run --enable-api命令启动,则可使用POST对http://yourhost:5005/webhook/rest/webhook链接进行访问,传递参数:{"sender":'your_sender_id',"message":'your_message'}
上述的message相当于rasa shell中直接输入的消息。
2)action服务
官方文档参考:https://rasa.com/docs/action-server/
定义:
A Rasa action server runs custom actions for a Rasa Open Source conversational assistant.
当你使用自定义的action时,就需要启用action server。
关于本例中使用的action,在前几篇中已有详述,不重复贴代码了。
1)action.py
在工程目录中添加actions目录,并在其中放actions.py
具体可见本例源码。
2)设置
本例,在endpoint.yml中如下设置:
action_endpoint:
url: "http://localhost:51001/webhook"
这就定义了一个action服务,在本机上使用51001端口提供action服务调用。
3)启动命令
rasa run actions -p 51001
以上命令直接启动了actions服务,其中的端口你可以自定义。
联系与资源
若需获取本项目相关 源码、配置资源,网盘链接:
https://pan.baidu.com/s/1zwe2PD1B-XOwh3bTizn5Lw
本文来自网络或网友投稿,如有侵犯您的权益,请发邮件至:aisoutu@outlook.com 我们将第一时间删除。
相关素材