推荐环境:python3.9
- 系统安装docker和docker-compose。参考网上教程
- 创建相关文件
cd /usr/local mkdir myRasa cd myRasa touch requirements.txt touch Dockerfile touch docker-compose.yml mkdir transformers_model cd transformers_model mkdir bert-base-chinese
- 编辑requirements.txt
rasa jieba transformers
- 下载bert-base-chinese模型文件,进入huggingface,下载下图文件,下载好后上传到刚刚新建的bert-base-chinese文件夹下
- 编写Dockfile
# 镜像名称 FROM python:3.9-slim # WORKDIR 后面写的是要部署到服务器上的路径,指定工作目录 WORKDIR /app # 添加所有文件到app 目录下。COPY或者ADD ADD . /app # 安装依赖包。豆瓣镜像比清华镜像快 RUN pip --no-cache-dir install -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com -r /app/requirements.txt EXPOSE 5005 RUN rasa init --no-prompt VOLUME /app VOLUME /app/data VOLUME /app/models CMD ["run","-m","/app/models","--enable-api","--cors","*","--debug" ,"--endpoints", "endpoints.yml", "--log-file", "out.log", "--debug"]
- 创建镜像
docker build -t myrasa/rasa:v1.0 .
- 上面的执行完成之后,会在myRasa下生成初始化的rasa文件,对应修改中文的规则文件。nlu.yml,rules.yml,stories.yml,config.yml,domain.yml,endpoints.yml等,不会可依照参考链接中的修改。
- 启动训练容器
docker run -v $(pwd):/app -p 5005:5005 myrasa/rasa:v1.0 rasa train
训练执行完成后会在models文件夹下生成模型文件
- 启动shell容器
docker run -v $(pwd):/app -p 5005:5005 myrasa/rasa:v1.0 rasa shell
上面的训练容器和shell容器用完可rm掉,如果规则文件有修改就要重新训练
- 启动api容器
docker run -v $(pwd):/app -p 5005:5005 myrasa/rasa:v1.0 rasa run --enable-api
启动成功后,使用此命令验证
curl --request POST --url http://localhost:5005/webhooks/rest/webhook --header 'content-type: application/json' --data '{"message": "你好"}'
上述操作都成功后,不断完善自己的规则文件,然后训练出模型 。
最后使用docker-compose进行最终部署,编辑docker-compose.yml
version: '3.0'
services:
rasa:
image: myrasa/rasa:v1.0
ports:
- "5005:5005"
volumes:
- ./:/app
command:
- run
#command: sh -c "command1; command2"
#action_server:
#image: rasa/rasa-sdk:latest
#ports:
#- "5055:5055"
#volumes:
#- "./actions:/app/actions"
启动
docker-compose up
rasa其它命令
rasa init:创建一个新的项目,包含示例训练数据,actions和配置文件。
rasa run:使用训练模型开启一个Rasa服务。
rasa shell:通过命令行的方式加载训练模型,然后同聊天机器人进行对话。
rasa train:使用NLU数据和stories训练模型,模型保存在./models中。
rasa interactive:开启一个交互式的学习会话,通过会话的方式,为Rasa模型创建一个新的训练数据。
telemetry:Configuration of Rasa Open Source telemetry reporting.
rasa test:使用测试NLU数据和stories来测试Rasa模型。
rasa visualize:可视化stories。
rasa data:训练数据的工具。
rasa export:通过一个event broker导出会话。
rasa evaluate:评估模型的工具。
-h, --help:帮助命令。
--version:查看Rasa版本信息。
rasa run actions:使用Rasa SDK开启action服务器。
rasa x:在本地启动Rasa X。
参考链接: