python rasa聊天机器人教程六:服务器部署
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容器中自动启动了两个容器

终端关闭后如果容器里面是停止状态,可以手动重启下容器
重新测试:


浙公网安备 33010602011771号