使用 Docker 快速部署 Rasa

使用 Docker 快速部署 Rasa

AI 3年前 2960 0

最近有个项目需要分析用户说出的话对应的相关结果。原本用结巴分词一个一个去匹配,后来数据越来越大,这样就得找其他方案了。后来了解 到 NLP,而且有个开源的项目 Rasa。

国内资源还是很少,官方的中文文档没人翻译,都要自己去看英文,便把这次部署记录下来。

PS : 本次部署是在 Docker 上,需要安装 Docker 后才可以进行后续操作。

创建项目

mkdir ~/rasa && cd rasa
docker run -v ~/rasa:/app rasa/rasa init --no-prompt

使用Docker训练自定义Rasa模型

编辑 config.yml 文件以使用所需的管道,并将 NLU 和 Core 数据放入 data/ 目录中。

docker run -v ~/rasa:/app rasa/rasa:latest-full train --domain domain.yml --data data --out models

运行 Rasa 服务

要在生产中运行 AI 助手,请在 credentials.yml 中配置所需的消息和语音通道。如果此文件不存在,请使用以下命令创建:

touch credentials.yml

然后根据你连接的通道进行编辑。之后,运行训练模型:

docker run -v ~/rasa/models:/app/models rasa/rasa:latest-full run

使用 Docker Compose 运行多个服务:

创建 docker-compose.yml 文件:

touch docker-compose.yml
添加以下内容:
version: '3.0'
services:
  rasa:
    image: rasa/rasa:latest-full
    ports:
      - 5005:5005
    volumes:
      - ./:/app
    command:
      - run

运行:

docker-compose up 
挂载后台
docker-compose up -d

运行成功后访问 localhost:5005 即可。

测试请求

curl -X POST \
  http://localhost:5005/model/parse \
  -d '{
    "text": "Hello!"
}

PS: 若需要鉴权验证则需要添加一下,修改 docker-compose.yml,这里有 token 密钥和 jwt,这里我选择了 auth-token

***
command:
      - run 
      - -m models
      - --enable-api
      - --auth-token 
      - 你的密码
curl -X POST \
  http://localhost:5005/model/parse?token=你的密码 \
  -d '{
    "text": "Hello!"
}

原文: http://yiqiao.me/articles/27/rapid-deployment-of-rasa-using-docker

版权声明: 自由转载-非商用-非衍生-保持署名 (创意共享3.0许可证)