1.准备环境:
宝塔+nginx+docker
首先在服务器上安装好宝塔,然后在宝塔里面安装nginx+docker
2.创建站点
宝塔站点里面创建一个站点
3.上传rasa项目的代码到站点目录
把之前在本地运行正常的rasa项目代码上传到服务器站点目录上
4.修改index.html代码
修改站点目录下/www/wwwroot/rasatest1.webok.me/index.html的代码
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title>Rasa Web Chatbot</title> </head> <body> <h1>Rasa Web Chatbot</h1> <div id="rasa-chat-widget" data-websocket-url="http://rasatest1.webok.me/socket.io" data-default-open="true" data-initial-payload="hi"></div> <script src="https://unpkg.com/@rasahq/rasa-chat" type="application/javascript"></script> </body> </html>
注意:
data-websocket-url="http://rasatest1.webok.me/socket.io"其中rasatest1.webok.me没有加端口,因为这个端口和当时创建站点的端口一致都是80
5.修改nginx配置
修改nginx配置添加如下的代码
location /socket.io { proxy_pass http://localhost:5005/socket.io; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; add_header 'Access-Control-Allow-Origin' '*'; }
6.docker中安装并运行rasa
拉取docker镜像
docker pull rasa/rasa:3.6.4-full
运行docker
在服务器的终端命令行中运行下面的脚本
docker run --name rasatest1 -it -p 5005:5005 -v /www/wwwroot/rasatest1.webok.me:/app -d rasa/rasa:3.6.4-full run --enable-api
运行docker后可以在docker容器内看到运行的docker
7.测试rasa
浏览器中输入之前创建站点的时候的域名
上面的测试发现发送“今天星期几”的问题后,没有回应
这是因为“今天星期几”的问题回应涉及到actions服务器,没有运行actions
先查看docker id
docker container ls -a
查看docker日志:
docker logs -f f093fe750867
f093fe750867hi容器id,通过上面的查询docker id获得的
查询得到异常:
rasa.shared.exceptions.RasaException: Failed to execute custom action 'action_get_day'. Couldn't connect to the server at 'http://action_server:5055/webhook.
表示无法连接到actions服务器
这就需要我们启动actions服务器
进去docker 容器终端
docker exec -it f093fe750867 bash
手动开启actions测试:
rasa run actions
然后浏览器中再次测试rasa:
问题回应涉及到actions服务器,现在就可以回复了。
但是这样在终端去启动actions服务器,不太符合实际日常的运行。
8.docker compose 同时部署 rasa core 和 actions 服务
8.1 在站点目录下创建一个docker-compose.yml
version: '3.0' services: rasa_core: image: rasa/rasa:3.6.4-full ports: - 5005:5005 volumes: - ./:/app command: - run - --enable-api action_server: image: rasa/rasa:3.6.4-full ports: - 5055:5055 volumes: - ./:/app command: - run - actions
8.2 修改action_endpoint
修改站点下/www/wwwroot/rasatest1.webok.me/endpoints.yml
action_endpoint: url: "http://action_server:5055/webhook"
8.3 启动docker
先删除之前的rasa容器
然后在命令行中运行启动命令
docker compose up
可以看到docker容器中自动启动了两个容器
终端关闭后如果容器里面是停止状态,可以手动重启下容器
重新测试:
标签:教程,rasa,python,actions,站点,action,服务器,docker From: https://www.cnblogs.com/fanhua999/p/17652891.html