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 我们将第一时间删除。

相关素材