阿丹
因为rasa的3.6之后才支持了arm框架但是在尝试了dockerhub中的arm版本中的时候出现了一个问题就是反复报错说运行的编译文件不支持。找了很多资料才了很多坑!终于给解决了,本文章就直接给拿捏到位!!!
原始镜像准备:
wanbeila/rasa-server_aarch64:3.1.0
会发现在运行这个镜像的是会出现一些问题,以及原本的rasa的docker不允许执行。
根据基础镜像使用dockerfile来打包:
FROM wanbeila/rasa-server_aarch64:3.1.0
ARG VENV="/opt/venv"
ENV HOME=/app
WORKDIR /app
USER rasa
ENV PATH="$VENV/bin:$PATH"
ENTRYPOINT ["rasa"]
使用这个dockerfile重新打一个镜像。
然后你就可以根据你打出来的镜像的名字来替换rasa官方的命令了。
直接运行就可以了。
rasa在docker中的基础命令
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。
给下面的myrasa/rasa:v1.0改成自己打包的镜像的名字:
启动训练容器
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": "你好"}'