python rasa聊天机器人教程六:服务器部署

发布时间 2023-08-23 22:54:14作者: 繁华博客

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容器中自动启动了两个容器

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

重新测试: