admin 管理员组

文章数量: 887031

Rasa

Rasa-X 部署(docker版)

版权声明本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明,违反必究。
本文链接

说明: docker 部署真的太方便, 太爽了!!!
本次安装的是Rasa-X ce版(Community Edition: 社区版)

硬件要求(来自官方文档1, 官方文档2)

Hardware & OS Requirements

最低和推荐的硬件规格和操作系统要求

vCPUs

  • 最小值: 2 vCPUs
  • 推荐: 2-6 vCPUs

RAM

  • 最小值: 4 GB RAM
  • 推荐: 8 GB RAM

Disk Space

  • 推荐: 100 GB disk space available

Operating System (OS)

  • 可以运行docker容器的系统

For Windows or other Linux operating systems, please follow the Manual Installation.

涉及端口(来自官方文档)

Server Configuration

设置服务器时,请确保以下端口号是打开的状态:


PortServiceDescription
22SSHSSH access
80HTTPWeb application access
443HTTPSWeb application over HTTPS access (optional)

必要软件

  1. python3
    要求:python3 >= 3.6
    $ python3 --version
    
  2. docker
    $ docker -v
    
  3. docker-compose
    $ docker-compose -v
    

安装

本次安装的rasa目录为/home/rasa

  1. 创建并进入rasa目录

    $ RASA_HOME=/home/rasa
    $ mkdir ${RASA_HOME}
    $ cd ${RASA_HOME}
    
  2. 下载Rasa-X docker-compose 和 命令文件

    $ wget -qO docker-compose.yml .29.0/docker-compose.ce.yml
    $ wget -qO rasa_x_commands.py .29.0/rasa_x_commands.py
    
  3. 在RASA_HOME下创建docker环境变量文档 .env

    $ vim ${RASA_HOME}/.env##########################
    RASA_X_VERSION=0.29.0
    RASA_VERSION=1.10.0
    RASA_TOKEN=<random_string>
    RASA_X_TOKEN=<random_string>
    PASSWORD_SALT=<random_string>
    JWT_SECRET=<random_string>
    RABBITMQ_PASSWORD=<random_string>
    DB_PASSWORD=<random_string>
    REDIS_PASSWORD=<random_string>
    ##########################
    

    注意: 上面的每一个<random_string>都是作为密码, 安全起见都随机生成不同的安全的字符序列。

    可以使用 openssl 生成随机字符串

    $ openssl rand -base64 16
    
  4. 在RASA_HOME下创建credentials文件 credentials.yml

    $ vim ${RASA_HOME}/credentials.yml##########################
    rasa:url: ${RASA_X_HOST}/api
    ##########################
    
  5. 在RASA_HOME下创建endpoints文件 endpoints.yml

    $ vim ${RASA_HOME}/endpoints.yml##########################
    models:url: ${RASA_MODEL_SERVER}token: ${RASA_X_TOKEN}wait_time_between_pulls: ${RASA_MODEL_PULL_INTERVAL}
    tracker_store:type: sqldialect: "postgresql"url: ${DB_HOST}port: ${DB_PORT}username: ${DB_USER}password: ${DB_PASSWORD}db: ${DB_DATABASE}login_db: ${DB_LOGIN_DB}
    lock_store:type: "redis"url: ${REDIS_HOST}port: ${REDIS_PORT}password: ${REDIS_PASSWORD}db: ${REDIS_DB}
    event_broker:type: "pika"url: ${RABBITMQ_HOST}username: ${RABBITMQ_USERNAME}password: ${RABBITMQ_PASSWORD}queue: ${RABBITMQ_QUEUE}
    action_endpoint:url: ${RASA_USER_APP}/webhooktoken: ""
    ##########################
    
  6. 在RASA_HOME下创建environments文件 environments.yml

    $ vim ${RASA_HOME}/environments.yml##########################
    rasa:production:url: http://rasa-production:5005token: ${RASA_TOKEN}worker:url: http://rasa-worker:5005token: ${RASA_TOKEN}
    ##########################
    
  7. 在RASA_HOME下用来挂载数据的目录

    $ mkdir ${RASA_HOME}/auth
    $ mkdir ${RASA_HOME}/certs
    $ mkdir ${RASA_HOME}/credentials
    $ mkdir ${RASA_HOME}/models
    $ mkdir ${RASA_HOME}/logs
    $ mkdir ${RASA_HOME}/terms
    $ mkdir ${RASA_HOME}/db
    
  8. 条款同意
    阅读相关的Rasa Enterprise terms或Rasa X terms。如果同意条款,请在RASA_HOME/terms下创建一个协议文件:

    $ touch ${RASA_HOME}/terms/agree.txt
    
  9. 设置rasa目录RASA_HOME的组和权限

    $ sudo chgrp -R root ${RASA_HOME}/* && sudo chmod -R 770 ${RASA_HOME}/*
    
  10. 配置Postgres数据库存储持久化目录权限

    $ sudo chown -R 1001 ${RASA_HOME}/db && sudo chmod -R 750 ${RASA_HOME}/db
    
  11. 准备Custom Actions
    这里简单描述怎么加上 Custom Actions, 不会去讲怎么写 custom actions 服务。如果有需要,之后会认真学习一下这个地方。
    另外一个需要说明的是, 这里把 Custom Actions 也部署成 docker, 同样方便日后迁移。

    # 1. 在 RASA_HOME 下新建 actions 目录
    $ mkdir ${RASA_HOME}/actions# 2. 将自己的 custom 拷贝到 ${RASA_HOME}/actions/下
    $ cp -r /root/rasa/actions/* ${RASA_HOME}/actions/# 3. 新建 docker-compose.override.yml, 添加上 Custom Actions 配置
    # 这里需要rasa-sdk, 开启时会自动拉取镜像
    $ vim docker-compose.override.yml#################################
    version: "3.4"
    services:app:restart: alwaysimage: "rasa/rasa-sdk:1.10.1"volumes:- "./actions:/app/actions"expose:- '5055'depends_on:- rasa-production
    ################################## 4. 需要注意的是
    #    1. docker-compose.override.yml 里的 version 要跟 docker-compose.ce.yml 的一样
    #    2. 假设 RASA_VERSION=a.b.c rasa/rasa-sdk 的 tag(d.e.f) 要满足 d=a, e=b
    

    如果你还不想配置你的 Custom Actions, 那请请确保你的 .env 下配置了 demo app 的镜像

    RASA_X_DEMO_VERSION=<rasa_x_version>
    

启动Rasa X

第一启动会拉取9个镜像, 会比较慢点...
```
$ sudo docker-compose up -d
```
这里 -d 是让 Rasa X 在后台运行, 此时你可以喝杯茶休息会啦

启动成功, 设置密码

$ sudo docker ps -a

$ sudo python rasa_x_commands.py create --update admin me <PASSWORD>

这里的 是你的Rasa-X登入密码

登录Rasa-X, happy 吧

  • 打开浏览器http://localhost/conversations
  • 输入密码
  • 可以配置你的代码仓库
  • 慢慢玩吧, 玩得愉快!

推荐

  • rasa-x 一键部署docker-compose文件

如果对你有帮助, 真是太幸福了~

本文标签: Rasa