<返回更多

如何将Rasa聊天机器人框架部署到linux,简明教程(适合收藏)

2020-06-22    
加入收藏

前言

这几天一直在研究linux环境下安装配置rasa框架,顺便整理一下安装步骤,以后可以查看。

 

建议:本文适合收藏,里面每个步骤都是实际开发中遇到的,这里不涉及Rasa聊天机器人框架的源码,因为源码在网上获取非常方便。这里只是单纯介绍部署的步骤,以及如何解决一些遇到的问题。

本文不建议直接拿来用,因为网上有很多介绍关于rasa机器人的部署,特别是对于windows环境下的部署,已经有很多成熟的部署步骤。但是对于linux部署,小编是一直找不到合适的部署方法。

于是,小编通过不断尝试,不断总结,才有了本文。所以,大家可以先在windows下部署,如果成功了,想移植到linux环境下,可以回头来看看这篇文章,相信对你有很大的帮助。

如何将Rasa聊天机器人框架部署到linux,简明教程(适合收藏)

 

环境: centos7、 Python 3.6.2
目标: 安装flask+uwsgi+Rasa1.10.2+MITIE+tensorflow2.0+supervisor服务

 

linux虚拟环境安装

 

备注: 没有安装pyenv, 可以在linux下安装pyenv。 pyenv 类似于windows下的Anaconda,主要用于python的版本管理。

 

  1. 查看pyenv托管了哪些python版本
 $ pyenv versions
如何将Rasa聊天机器人框架部署到linux,简明教程(适合收藏)

 

 

  1. 使用pyenv安装python环境(已经安装好的可以跳过)
 $ pyenv install -v 3.6.2

 

  1. 安装时报错ModuleNotFoundError: No module named '_ctypes'的解决办法
yum install libffi-devel 

 

项目配置

 

  1. 从git上拉下项目( git-url 替换成实际的git地址)
git clone -b master git-url

 

  1. 进入代码根目录,新建虚拟环境
# 当前目录 
$cd chatBotRasa
如何将Rasa聊天机器人框架部署到linux,简明教程(适合收藏)

 

 

  1. 创建虚拟环境
# 当前python环境切换到3.6.2
$ pyenv global 3.6.2


# 在当前项目根目录下新建虚拟环境目录
$ virtualenv venv_rasa_362


# 切回之前的python环境(保证原始环境不变, 假设原始环境是python 3.6.0)
$ pyenv global 3.6.0

 

  1. 在项目的根目录下新建几个目录
$ mkdir log
$ mkdir logs
$ mkdir models

 

  1. 对应的模型放到指定目录下
total_word_feature_extractor_zh.dat  # 放到 data 目录下
20200615-225841.tar.gz  # 放到models下(不同版本rasa对应不同版本的模型,否则要重新训练)

 

【安装虚拟环境的rasa相关python包】

 

  1. 进入虚拟环境
$ source venv_rasa_362/bin/activate

 

  1. 退出虚拟环境
$ deactivate

 

  1. 安装rasa==1.10.2 , 安装失败,多安装几次就可以了
$ pip --default-timeout=1000 install rasa==1.10.2

 

  1. 安装项目其他的包
$ pip install -r requirements.txt
如何将Rasa聊天机器人框架部署到linux,简明教程(适合收藏)

 

 

  1. 安装MITIE (第一步容易安装失败,多安装几次就可以了)
$ pip install git+https://github.com/mit-nlp/MITIE.git
$ pip install rasa[mitie]

 

  1. 安装uwsgi
$ pip install uwsgi

 

uwsgi 配置文件, 一般放在代码根目录下,例如:
/opt/algorithm/chatBotRasa/chatBotRasa_config.ini

 

如何将Rasa聊天机器人框架部署到linux,简明教程(适合收藏)

 

【启动rasa的两个服务】

 

(以脚本的形式,均需要在虚拟环境下进行。 一般更改模型的话,主线程App.py 不用重启,只要重启一下两个服务即可。运行脚本命令: $ sh xxxx.sh)

 

  1. 开启第一个服务 start_one_rasa.sh
nohup python -m rasa run --port 5005 --endpoints configs/endpoints.yml --credentials configs/credentials.yml --debug > ./log/start_one_rasa.log  2>&1 &

 

  1. 查看第一个服务 check_one_rasa.sh
# 查看端口对应的线程
netstat -tunlp|grep 5005

 

  1. 关闭第一个服务 kill_one_rasa.sh
fuser -k -n tcp 5005
  1. 开启第二个服务 start_two_rasa.sh
nohup python -m rasa run actions --port 5055 --actions actions --debug > ./log/start_two_rasa.log  2>&1 &

 

  1. 查看第二个服务 check_two_rasa.sh
# 查看端口对应的线程
netstat -tunlp|grep 5055

 

  1. 关闭第二个服务 kill_two_rasa.sh
fuser -k -n tcp 5055

【在线训练模型】

 

  1. 进入虚拟环境,进入项目根目录
# 模型训练: 该命令会同时训练NLU和Core模型
# 前提是安装好MITIE模块
$ python -m rasa train --config configs/config.yml --domain configs/domain.yml --data data/

【配置supervisor】

 

  1. 安装配置supervisor (非虚拟环境)

 

安装supervisor(一般是提前安装好了):

yum install supervisor

 

增加配置文件, 例如命名为:
chatBotRasa_supervisor.ini

保存在
/etc/supervisord.d/chatBotRasa_supervisor.ini

 

注意事项:

(1) 如果网站所在的目录为chatBotRasa, 则建议ini文件命名为:
chatBotRasa_supervisor.ini

(2) 如果有多一个网站,目录为charts, 则可以新建多个文件: charts_supervisor.ini

(3) 多个xxx_supervisor.ini 文件,Supervisor 会同时允许加载多个配置

 

如何将Rasa聊天机器人框架部署到linux,简明教程(适合收藏)

 

 

  1. 启动停止supervisord (只有单个服务时适用, 或者首次启动)

(1) 启动supervisord: supervisord -c /etc/supervisord.conf

(2) 停止 supervisord(需要多次停止才能生效):supervisorctl shutdown

(3) 重启服务(里面的配置也会更新):supervisorctl reload

 

  1. 启动停止指定supervisord

(1) 查看所有子进程的状态:

$ supervisorctl status
如何将Rasa聊天机器人框架部署到linux,简明教程(适合收藏)

 

 

(2) 关闭开启指定子进程:

$ supervisorctl restart chat_bot_rasa    # 重启
$ supervisorctl stop chat_bot_rasa       # 停止
$ supervisorctl start chat_bot_rasa      # 启动

(3) 关闭、开启所有的子进程

$  supervisorctl stop all
$  supervisorctl start all

 

  1. 管理相关进程

(1) 查看相关进程: netstat -ntlp | grep 9108

(2) kill某个端口: fuser -k -n tcp 9108

【项目在线调试】

 

1. 进入虚拟目录: source my_venv/bin/activate

2. 启动项目: uwsgi dataSys_config.ini

3. 调试结束后,记得删除 项目下log目录下的日志(supervisord的调试日志)否则项目不能正常启动

 

结语

 

学习python,不需要一杯奶茶钱,只需要你点个关注。如果觉得小编的文章对你有帮助,记得点个赞,顺便帮我分享出去。有什么不明白的地方,欢迎在下方评论,或私信小编。最后,感谢大家的阅读,祝大家生活愉快。

 

 

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>