开源对话机器人框架 Rasa (一):安装

更新日期: 2023-06-19 阅读次数: 6622 字数: 1154 分类: AI

需求是实现一个特定领域的问答功能,交互模式类似跟 ChatGPT/文心一言聊天一样,或者是购物平台中的客服机器人。 基于 ChatGPT 的开源实现来训练模型肯定不现实,毕竟这么大的模型,训练成本极高,而且现实需求也不需要这么庞大的功能,只需要专业的领域知识即可。 此外,涉及到医疗领域,自动回复不能太随意,容易引起纠纷。所以最近经常看到有人在问“怎样使用 ChatGPT 构造一个客服机器人?”,我的感觉是,对场景理解有偏差。

找了一下发现一个不错的开源对话管理框架 Rasa。

Rasa Open Source is the most popular open source framework for building chat and voice-based AI assistants.

走马观花地翻看了《Rasa 实战:构建开源对话机器人》这本书,发现大部分都是配置性的工作,光看不动手效率不高。 不如边看边配置,边测试,这样更高效,且不容易厌倦。

以下是开发环境的部署流程,对于生产环境的部署,请参考 对话机器人 rasa 生产环境部署,Ubuntu 服务器基于 docker

效果

rasa 中文对话机器人

基于 Rasa websocket 的网页组件 实现。

安装依赖

确认 Python 版本大于等于 3.7

python3 --version

更新 pip

pip3 install -U pip

Ubuntu 系统上安装依赖

sudo apt update
sudo apt install python3-dev python3-pip

安装 Rasa

注意,如果是国内的开发者,首先确保已经配置了国内的源,例如,使用清华的源:

pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

因为安装 rasa 的过程中,会安装无数的三方依赖,其中就有 tensorflow,单这一个依赖就 500M。人生苦短,用国内源,早用早享受。。。

pip3 install rasa

若想指定版本:

pip3 install rasa==3.4.6

查看 Rasa 版本

> rasa --version
Rasa Version      :         3.4.6
Minimum Compatible Version: 3.0.0
Rasa SDK Version  :         3.4.1
Python Version    :         3.8.5
Operating System  :         Linux-4.4.0-22621-Microsoft-x86_64-with-glibc2.29
Python Path       :         /usr/bin/python3

新建/初始化项目

rasa init

我选择了初始化一个 model,我看自动训练了 100 轮,类似 pytorch。估计这里是用 tensorflow 实现的。

如果选择与训练好的模型对话,会自动开启一个 Rasa server

2023-04-04 11:44:42 INFO     root  - Starting Rasa server on http://0.0.0.0:5005
2023-04-04 11:44:43 INFO     rasa.core.processor  - Loading model models/20230404-114314-gilded-tower.tar.gz...

然而,我并不知道该问啥问题...

Your input ->  hi
Hey! How are you?

Your input ->  who are you?
I am a bot, powered by Rasa.

Your input ->  what can you do?
I am a bot, powered by Rasa.

Your input ->  guide me
Hey! How are you?

Your input ->  你好啊
Your input ->  你是谁

Your input ->  bye
Bye

输入中文没有回应,看来默认不支持中文,需要配置。参考 配置 Rasa 支持中文

禁用上报

服务器上的服务,还是不希望被上报任何信息

> rasa telemetry disable
Disabled telemetry reporting.

项目目录结构

> tree
.
├── actions
│   ├── __init__.py
│   ├── __pycache__
│   │   ├── __init__.cpython-38.pyc
│   │   └── actions.cpython-38.pyc
│   └── actions.py
├── config.yml
├── credentials.yml
├── data
│   ├── nlu.yml
│   ├── rules.yml
│   └── stories.yml
├── domain.yml
├── endpoints.yml
├── models
│   └── 20230404-114314-gilded-tower.tar.gz
└── tests
    └── test_stories.yml

可以看到大部分都是 yml 格式的配置文件,具体每个配置文件的左右后面再一一测试。

但是里面有些文件是不需要加入 git 代码管理的,具体参考:Rasa 项目的 gitignore 配置

rasa init 报错

AttributeError: module 'lib' has no attribute 'X509_V_FLAG_CB_ISSUER_CHECK'

解决方法:

pip3 install pyopenssl --upgrade

Rasa 有哪些替代品

  • Microsoft Bot Framework/LUIS:一个微软的对话管理平台,提供了 Bot Builder SDK 和 Bot Framework Emulator 等工具,可以让开发人员构建聊天机器人,并将其集成到多个渠道中。
  • Dialogflow:一个 Google 的自然语言处理平台,可以帮助开发人员构建智能聊天机器人,并与多种平台进行集成,例如 Google Assistant、Facebook Messenger、Slack 等等。
  • IBM Watson Assistant:IBM 的人工智能平台,提供了多种工具和 API,可以帮助开发人员构建智能聊天机器人,并将其部署到多个渠道中。
  • Botpress:一个开源的聊天机器人框架,提供了丰富的工具和组件,可以帮助开发人员快速构建和部署聊天机器人。
  • Wit.ai:一个 Facebook 的自然语言处理平台,提供了多种 API 和工具,可以帮助开发人员构建智能聊天机器人,并将其集成到多种平台中。

Rasa 支持从这些平台迁移/导入配置的工具。

Rasa 的优势是,运行在本机,不需要远程调用三方平台的接口,另外也不用担心这些三方服务被裁撤,及乱收费问题。

查看合集

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

tags: rasa

关于作者 🌱

我是来自山东烟台的一名开发者,有敢兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式