前段时间,有一个项目需要搭建一个Chatbot,所以了解了一些关于rasa部署的方式。目前只是搭建了一个基础的chatbot,比较简单,很有很多功能后面慢慢研究。趁着刚完成,还有印象,做一下总结,后面持续更新。
一. Docker容器中部署Rasa
第一种方式是在docker容器中部署rasa服务。
关于什么是docker,这里就不做详细的解释了,有很多文章对这个讲的非常详细。
部署过程参考官方tutorial:
Building Rasa with Docker
非常详细了,所以这里就做一个搬运工哈哈。
二. 服务器中直接部署Rasa
第二种方式,不借助docker,而是直接在服务器中部署。
官方quick installation
(这种方式需要先在服务器中安装python)
- 使用pip安装Rasa (需要python 3.6或以上)
pip3 install rasa
- 初始化一个新的project
rasa init
然后,根据引导一步步来就行,首先需要创建一个文件夹作为project的文件夹,然后初始化创建一个最基础的对话。
- 根据初始化之后得到的内容,训练模型
rasa train
- 开启服务
rasa run -m --cors "*" --debug
此时,完成了rasa服务的开启。我们可以对其进行访问。具体访问方式参照官网的介绍。
但是,这种部署方式有一种缺点,就是断开与服务器的连接后,这个服务也会自动关闭,尝试过在docker中部署rasa-full,但是也无法一直后台运行。
最后,我们通过nohup来让我们的服务后台运行。
上面的第4步改为:
nohup rasa run -m models --cors "*" --debug &
通过这种方式,rasa可以作为一个后台进程一直运行。
如果要结束该进程:
sudo netstat -ap | grep 5005
查看占用5005端口(rasa服务端口)的进程pid是多少;
然后,
kill -9 pid
来结束5005端口的占用,即停止rasa服务。