对话机器人 Rasa(十三):GUI 管理系统 Botfront 部署

发布时间: 2023-07-09 17:21:39 作者: 大象笔记

Botfront 是一个非常方便的 Rasa GUI 图形化管理后台。可以在网页里:

非常适合没有 linux 服务器操作经验的用户。

整个安装配置过程参考

https://botfront.io/docs/installation/server-cluster

即可。

这里只是记录一下文档中没有提及的细节。

版本

botfront@1.0.5

目录结构

$ tree -a
.
├── .botfront
│   ├── botfront.yml
│   └── docker-compose-template.yml
├── actions
│   ├── Dockerfile
│   ├── Dockerfile.production
│   ├── __init__.py
│   ├── my_actions.py
│   └── requirements.txt
└── rasa
    ├── Dockerfile
    ├── __init__.py
    ├── ignore_sample_component.py
    ├── requirements.txt
    └── setup.py

3 directories, 12 files

botfront.yml

可以看懂 botfront 是基于 Rasa 2.X 版本。并不支持 Rasa 3.X。

images:
  default:
    botfront: 'botfront/botfront:v1.0.5'
    rasa: 'botfront/rasa-for-botfront:v2.3.3-bf.3'
    duckling: 'botfront/duckling:latest'
    mongo: 'mongo:latest'
    actions: 'rasa/rasa-sdk:2.1.2'
  current:
    botfront: 'botfront/botfront:v1.0.5'
    rasa: 'botfront/rasa-for-botfront:v2.3.3-bf.3'
    duckling: 'botfront/duckling:latest'
    mongo: 'mongo:latest'
    actions: 'rasa/rasa-sdk:2.1.2'
env:
  bf_project_id: bf
  bf_url: 'http://botfront:3000/graphql'
  root_url: 'http://localhost:8888'
  augmentation_factor: 50
  mongo_url: 'mongodb://mongo:27017/bf'
version: 1.0.5

需要将这里的 root_url 修改成服务器的外网 IP 地址。

然后通过 http://your_ip:8888 进行访问 botfront 管理后台。

error

查看错误日志:

botfront logs

pointsFetched' as it is null.
botfront-rasa      | 2023-07-09 07:09:18 DEBUG    rasa.utils.botfront  - Trying to fetch config from http://botfront:3000/graphql (retry #327)
botfront-rasa      | 2023-07-09 07:09:18 ERROR    sgqlc.endpoint.http  - GraphQL query failed with 1 errors
botfront-rasa      | 2023-07-09 07:09:18 DEBUG    rasa.utils.botfront  - Cannot destructure property 'endpoints' of 'endpointsFetched' as it is null.
botfront-rasa      | 2023-07-09 07:09:18 DEBUG    rasa.utils.botfront  - Trying to fetch config from http://botfront:3000/graphql (retry #328)
botfront-rasa      | 2023-07-09 07:09:18 ERROR    sgqlc.endpoint.http  - GraphQL query failed with 1 errors
botfront-rasa      | 2023-07-09 07:09:18 DEBUG    rasa.utils.botfront  - Cannot destructure property 'endpoints' of 'endpointsFetched' as it is null.

docker 容器

$ docker container ls
CONTAINER ID   IMAGE                      COMMAND                  CREATED         STATUS         PORTS                                                 NAMES
xxxxxxxxxxxx   botfront/botfront:v1.0.5   "/docker/entrypoint.…"   4 minutes ago   Up 4 minutes   0.0.0.0:8888->3000/tcp, :::8888->3000/tcp             botfront-app
xxxxxxxxxxxx   botfront-rasa              "/bin/bash -o pipefa…"   4 minutes ago   Up 4 minutes   0.0.0.0:5005->5005/tcp, :::5005->5005/tcp             botfront-rasa
xxxxxxxxxxxx   mongo:latest               "docker-entrypoint.s…"   4 minutes ago   Up 4 minutes   0.0.0.0:27017->27017/tcp, :::27017->27017/tcp         botfront-mongo
xxxxxxxxxxxx   botfront/duckling:latest   "/bin/sh -c 'exec du…"   4 minutes ago   Up 4 minutes   0.0.0.0:8000->8000/tcp, :::8000->8000/tcp             botfront-duckling

settings/credentials

注意,安装文档里提到的修改 settings/credentials base_url 指的是 botfront web 管理后台的修改,而不是服务器上的 rasa 配置文件目录。

训练模型

点击 botfront 网页后台右上角的 TRAIN 按钮即可。转圈即在 training。

这个训练过程跟在命令行里调用 rasa train 是一样的,会很耗时,大概 5 分钟左右,取决于 CPU 的计算能力。

请耐心等待 : )

训练完之后,就可以在 web 聊天组件里测试效果了。非常有成就感。

训练模型时的权限错误

Error: An unexpected error occurred during training. Error: [Errno 13] Permission denied: 'models/model-chitchat-xxxxxx.tar.gz'

我通过 chown 当前用户,还是不行,我不太了解 docker 用户权限机制,看来得了解一下。

先临时通过 chmod 777 来解决没有写入权限的问题。再次点击 TRAIN 按钮,就能正常地生成模型了。

ls models/
model-chitchat-xxxxxx.tar.gz

查看合集

📖 对话机器人 Rasa 中文系列教程

我是一名山东烟台的开发者,联系作者