首页 > 编程语言 >python rasa聊天机器人教程六:服务器部署

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

时间:2023-08-23 22:55:17浏览次数:40  
标签:教程 rasa python actions 站点 action 服务器 docker

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

相关文章

  • python - 文件md5校验
    通过md5校验文件,我们可以判断文件内容是否改变,用python实现代码如下importhashlib#1.txt为空文本withopen('1.txt','rb')asf:data=f.read()md5Old=hashlib.md5(data).hexdigest()print(md5Old)#d41d8cd98f00b204e9800998ecf8427e#1.txt内容为12......
  • Python基础
    python学习后缀.py纯Python文件.ipynbJupyterNotebook文件的扩展名,代表IpythonNotebook.pyi类型提示文件,提供代码静态类型信息,帮助开发人员进行类型检查和静态分析命名和对应py文件相同,以便编译器将二者进行关联.pycPython字节码文件的扩展名,存储已编......
  • Python结合文件名将文件复制到匹配的多个文件夹内
       本文介绍基于Python语言,针对一个文件夹下的大量栅格遥感影像文件,基于其各自的文件名,分别创建指定名称的新文件夹,并将对应的栅格遥感影像文件复制到不同的新文件夹下的方法。  首先,我们来看一下本文需要实现的需求。现有一个文件夹,其中有大量.tif格式的栅格遥感影像文件,以......
  • python3_获得文件大小
    1、os.path.getsize(file_path),返回文件字节大小,int类型。importosfile_size=os.path.getsize('/home/pi/jodie/log/jodie-test.log')print(file_size,type(file_size))#947642<class'int'>#显示文件大小为:925kB2、os.stat(file_path).st_size,返回文件字......
  • docker 安装【菜鸟级教程】
    前言1.安装及环境1.1.Linux安装1.2.Windows安装2.初识Docker2.1.进入dockerhttps://www.cnblogs.com/xhyan/p/6593075.2.2.命令行基本操作安装依赖yuminstall-yyum-utilsdevice-mapper-persistent-datalvm2Docker实例Docker安装CentosCentOS镜像库地址:https:/......
  • python for循环
     格式:for变量in序列:执行的代码块 实例1:fruits=["apple","banana","cherry"]forfruitinfruits:print(fruit)      ......
  • python3_关于数字的一些操作记录
    1、数字整数、小数部分分离方法1:math模块提供的floor方法xs=num-math.floor(num)zs=num-xsreturn 'zhengShu: {0}, xiaoShu: {1}'.format(str(zs),str(xs))方法2:将浮点类型的数字转化为字符串zs,xs=str(num).split('.')return 'zhengShu: {0}, xiaoShu: {1}'.fo......
  • 腾讯云服务器桌面安装教程(ubuntu20.04)
    一、首先进入腾讯云服务器防火墙打开5900-5903的端口,即vnc远程桌面的访问端口;后续访问服务器会用到:1代表5901,2代表5902,3代表5903 二、使用sudosu或者sudosuroot进入管理模式:1.首先更新源,获得最新软件安装包apt-getupdate2.安装桌面软件,包括系统面板、窗口管理器、文......
  • python+selenium+pytest-(3)_基本操作方法
    浏览器操作#浏览器实例化driver=webdriver.Chrome()#窗口最大化driver.maximize_window()#窗口最小化driver.miximize_window()#浏览器长、宽设置,单位:像素driver.set_window_size(100,200)#获取浏览器大小driver.get_window_size()#前进/后退/刷新driver.forwa......
  • python解释器的安装与多版本共存
    内容总结一、计算机内部存储的原理#计算机内部只认识01二进制因为计算机是基于电频工作的,电频是有高低之分的#存储单位比特位(bit)'''二进制的位数'''00000001000000018比特位=1字节(bytes)1024字节(bytes)=1KB1024KB=1MB1024MB=1GB1024GB=1TB...二、编程语......