RasaX - 部署
RasaX - 部署
cmyang1. 前置介绍
本项目实现了rasa从开发到部署,以及通过rasa-x训练模型,一整套流程
版本
- rasa: 2.8.14
- rasa-sdk: 2.8.6
- rasa-x: 0.42.6
为什么选低版本
当前rasa的最高版本已经到3.4.x,rasa-x的版本在1.1.*,选择2.x的版本的原因,是rasa-x到1.1以后,需要收费,rasa-x的社区版本已经不维护
详见官方说明:https://forum.rasa.com/t/changes-to-the-rasa-x-community-edition-free-version/53650
哪些更改将于今天(2022 年 6 月 8 日)生效
- Rasa 将不再维护或支持我们工具的免费版本(“Rasa X”)。2022 年 3 月 29 日发布的 1.1 版是最后一个次要版本。
- Rasa X 用户可以继续使用当前版本或升级到 1.1(与 Rasa Open Source 3 兼容),请注意 Rasa X 文档将移至旧文档 642022 年 6 月 8 日。
- Rasa Enterprise 的试用版将可供评估。请联系销售 15如果你感兴趣。
- Rasa X 论坛部分将保持开放,但我们将在 2022 年底将其设置为只读。
- 我们将关闭RasaHQ/rasa上的所有问题 17与 Rasa X 相关的回购协议。
虽然官方讲支持rasa-x 1.1版本,并且兼容rasa 3.x 的版本,但是实际测试,按照官方文档的部署,运行不起来,也在运行脚本里下载不到低版本的rasax。
官方提供的版本兼容表
Rasa Enterprise Rasa Open Source Rasa SDK 1.1.x 3.0.x, 3.1.x 3.0.x, 3.1.x 1.0.1 2.8.25 2.8.4 0.42.6 2.8.14 2.8.3 0.41.2 2.7.1 2.7.0 0.40.0 2.6.2 2.6.0 0.39.0 2.5.0 2.5.0 … … … 这里选用较稳定的2.8.14版本,官方的demo,master分支当前也是基于2.8.x版本进行开发的
2. 项目开发
3. 项目部署
主要还是参考官方文档的部署步骤:
注意:建议使用docker-compose手动安装,官方提供的一键脚本安装有问题,脚本里的链接下载不到对应的包,无法启动
3.1 基础环境
- CentOS7
- docker 23.0.1
- docker-compose 2.16.0
- python 3.7.16
3.1.1 创建centos7
可以通过VMware创建虚拟机,具体搭建过程,可以参考文章Win安装centOS7虚拟机
3.1.2 安装docker和docker-compose
可以参考文章Linux环境安装Docker
3.1.3 安装python3.7
注意:python 版本应在 3.6 以上才能使用 Rasa 和 Rasa X。
此处是在没有安装过python3的环境中安装python3.7。
- 下载https://www.python.org/ftp/python/
- yum -y install gcc
- yum install zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel xz xz-devel libffi-devel
- mkdir -p /usr/local/python3
- ./configure –prefix=/usr/local/python3
- make && make install
- ln -s /usr/local/python3/bin/python3 /usr/local/bin/python3
- ln -s /usr/local/python3/bin/pip3 /usr/local/bin/pip3
3.1.4 检查基本环境
1 | python3 --version && docker -v && docker-compose -v |
3.2 部署rasa-x
3.2.1 设置项目目录
1 | mkdir /etc/rasa |
3.2.2 下载相关文件
1 | wget -qO docker-compose.yml https://storage.googleapis.com/rasa-x-releases/0.42.6/docker-compose.ce.yml |
3.2.3 配置环境变量
- 在/etc/rasa目录下,
vim .env
1 | # rasax specific settings |
如果按照官方的openssl rand -base64 16
用于生成随机序列
3.2.4 Credentials
- 在/etc/rasa目录下,创建
credentials.yml
, 使用vim credentials.yml
1 | rasa: |
3.2.5 Endpoints
- 在/etc/rasa目录下,创建
endpoints.yml
, 使用vim endpoints.yml
1 | models: |
3.2.6 部署环境
- 在/etc/rasa目录下,创建
environments.yml
, 使用vim environments.yml
1 | rasa: |
3.2.7 自定义docker-compose
- 为了升级方便,官方建议单独创建
docker-compose.override.yml
覆盖docker-compose.yml vim docker-compose.override.yml
1 | version: '3.4' |
3.2.8 挂载目录
- 在创建目录
1 | mkdir /etc/rasa/auth |
- 给目录授权
1 | sudo chgrp -R root /etc/rasa/* && sudo chmod -R 770 /etc/rasa/* |
3.2.9 Postgres 数据库存储
- 配置持久性 Postgres 数据库存储
1 | sudo chown -R 1001 /etc/rasa/db && sudo chmod -R 750 /etc/rasa/db |
3.2.10 启动docker-compose
1 | # 创建并启动 |
3.2.11 设置管理员密码
1 | sudo python rasa_x_commands.py create --update admin me 123456 |
- 如果执行报错
1 | /bin/sh: docker-compose: command not found |
使用以下命令执行
1 | python3 rasa_x_commands.py create --update admin me 123456 |
3.2.12 访问rasax
http://192.168.80.128/conversations
3.2.13 注意事项
- 如果销毁然后重新创建docker-compose,rasa会下载资源,特别耗时间,建议第一次下载完成后,将缓存下载下来,后面再重新创建启动容器docker-compose up -d后,直接把缓存文件拷贝到对应的目录,较少启动时间
1 | # 下载缓存文件 |
- 启动报错
1 | xxx IPv4 forwarding is disabled. Networking will not work. |
需要设置ipv4转发
1 | vim /etc/sysctl.conf |
3.3 部署rasa
1 | docker run -d --name quectel-bot -p 5005:5005 -p 5055:5055 -p 8000:8000 \ |
4. 使用rasa x
4.1 配置CICD
让rasa x和代码仓库关联起来
点击左下角Git图标,选择Connect to a repository
填写git地址免费版本只支持ssh方式
将ssh公钥配置在git上,需要支持可写,单击验证
等待一会,就会把代码同步过来
4.2 训练模型
点击Add model -> Train model
训练完成点击 see new model
激活model