RASA 开发中文指南系列博文:
- Rasa中文聊天机器人开发指南(1):入门篇
- Rasa中文聊天机器人开发指南(2):NLU篇
- Rasa中文聊天机器人开发指南(3):Core篇
- Rasa中文聊天机器人开发指南(4):RasaX篇
- Rasa中文聊天机器人开发指南(5):Action篇
注:本系列博客翻译自Rasa官方文档,并融合了自己的理解和项目实战,同时对文档中涉及到的技术点进行了一定程度的扩展,目的是为了更好的理解Rasa工作机制。与本系列博文配套的项目GitHub地址:ChitChatAssistant,欢迎star
和issues
,我们共同讨论、学习!
1. Rasa简介与安装
1.1 Rasa简介
Rasa是一个开源机器学习框架,用于构建上下文AI助手和聊天机器人。Rasa有两个主要模块:
Rasa X是一个工具,可帮助您构建、改进和部署由Rasa框架提供支持的AI Assistants
1.2 Rasa安装(v1.9.4)
1.1 Ubuntu 16.04环境
1. 安装python3.6和pip
Rasa框架要求python的版本为3.6以上,由于ubuntu 16.04预装的是python 2.7,因此在安装rasa之前我们需要安装python3.6
或者python 3.7
,这里以安装python3.6为例:
# 编译安装python3.6.5
# 默认安装路径为/usr/local/,可在执行配置命令时使用--prefix=更改
$ sudo apt-get install openssl libssl-dev
$ sudo wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz
$ sudo tar xzf Python-3.6.8.tgz
$ cd Python-3.6.8
$ sudo ./configure --with-ssl --enable-optimizations
$ sudo make
$ sudo make install
# 软链接到/usr/bin/python,可理解为生成快捷方式
# 当命令终端输入python命令,即进入python 3.6.8
# 如果需要使用其他版本,也是通过以下两个命令实现,只是python3.6改成其他版本
$ sudo rm /usr/bin/python
$ sudo ln -s /usr/local/bin/python3.6 /usr/bin/python
# 生成pip快捷方式,以支持pip命令
$ rm /usr/bin/pip
$ sudo ln -s /usr/local/bin/pip3 /usr/bin/pip
需要注意的是,如果在更新包过程中比较慢,我们就需要更新源,具体步骤如下:
(1)备份源
$ sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
(2)修改源
$ sudo vim /ect/apt/sources.list
删除文件所有内容,将其替换为国内源,我这里使用网易的。
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
(3)使软件源生效
$ sudo apt-get update
2. 安装pipEnv,即创建虚拟环境
# 安装virtualenv
$ sudo pip install virtualenv
# 创建virtualenv快捷方式
# 如果不清楚virtualenv路径,可使用"find / -name virtualenv"命令查询
$ sudo ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv
# 查看是否安装成功
$ sudo virtualenv --version
如果在使用pip下载包时容易出现“socket time out”异常,这是由于默认pip源或网络不稳定导致,我们可以使用清华大学的pip源镜像,具体配置如下:
# 如果已经存在pip.conf文件,只需要执行第二步即可
$ sudo mkdir ~/.pip
$ sudo vim ~/.pip/pip.conf
然后,pip.conf
的文件内容如下:
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host=pypi.tuna.tsinghua.edu.cn
disable-pip-version-check = true
timeout = 6000
3. 创建新的项目,运行在python虚拟环境
$ sudo mkdir chitchat_assistant
$ sudo cd chitchat_assistant
$ sudo virtualenv env
$ sudo source env/bin/activate
如果看到以下结果说明操作成功:
这里我们创建一个名为weather_assistant
的python项目,然后为其配置虚拟环境,其中env是虚拟环境的名称,会自动被创建。对于该Python项目,使用pip下载的所有苦将独立于系统或其他项目环境,保存在当前目录的env的目录下,如果需要退出虚拟环境,可以再项目目录使用下面命令:
$ sudo deactivate
4. 安装rasa,自动生成rasa项目所需文件
# 安装rasa, 由于网络问题,延长超时时间
# 如果仍然超时异常,多执行几次
$ sudo pip --default-timeout=500 install -U rasa
# 生成文件
$ sudo rasa init --no-prompt
注:如果出现No matching distribution found for tensorflow>=2.1.0异常,可以通过执行
pip3 install --upgrade tensorflow rasa
命令解决。
执行rasa init
命令的目的为自动生成开发一个Rasa项目所需的所有必要文件,包括执行训练NLU和对话模型。有了这些文件我们便可以不作任何修改就能使Rasa项目跑起来,更重要的是,对于未来一些具体业务来说,也是修改这些文件的内容,这些文件名称及其作用如下表所示(还是英文更原汁原味
):
__init__.py |
an empty file that helps python find your actions |
---|---|
actions.py |
code for your custom actions |
config.yml ‘*’ |
configuration of your NLU and Core models |
credentials.yml |
details for connecting to other services |
data/nlu.md ‘*’ |
your NLU training data |
data/stories.md ‘*’ |
your stories |
domain.yml ‘*’ |
your assistant’s domain |
endpoints.yml |
details for connecting to channels like fb messenger |
models/<timestamp>.tar.gz |
your initial model |
rasa还提供了其他命令,详情参见此文。
5. 测试助手
$ sudo rasa shell
打印如下:
1.2 Windows10环境
1. 创建一个新的python项目
注意,要完成这步你需要确保win10已经安装python3.6或者python3.7,由于我是在Pycharm IDE上开发的,如果你希望与我相同的环境,那么也需要安装Pycharm,这里推荐2018.3.5 professional版本。
2. 安装rasa
pip --default-timeout=500 install -U rasa
打开Pycharm命令终端,输入以上命令安装rasa开发环境,在安装的过程中有可能会出现超时中断,可以尝试多执行几次上面的命令。待安装完毕后,可以执行pip show rasa
命令查看rasa版本信息。
(venv) E:\ComPython\ChitChatAssistant>pip show rasa
Name: rasa
Version: 1.7.0
Summary: Open source machine learning framework to automate text- and voice-based conversations: NLU, dialogue management, connect to Slack, Facebook, and more - Create chatbots and voice assistants
Home-page: https://rasa.com
Author: Rasa Technologies GmbH
Author-email: hi@rasa.com
License: Apache 2.0
Location: e:\compython\chitchatassistant\venv\lib\site-packages
Requires: pytz, matplotlib, gast, apscheduler, pykwalify, rasa-sdk, pydot, sanic-jwt, attrs, networkx, absl-py