Rasa中文聊天机器人开发指南(1):入门篇

本文是Rasa中文聊天机器人开发指南的入门篇,介绍了Rasa框架的基本概念,包括NLU和Core模块。文章详细阐述了在Ubuntu 16.04和Windows 10环境下安装Rasa的步骤,包括更新源、创建Python虚拟环境、安装Rasa及解决常见问题。此外,还提及了Rasa工作原理,以及构建简单聊天机器人的初步步骤,如NLU样本、Core样本和domain.yml文件的创建。
摘要由CSDN通过智能技术生成


RASA 开发中文指南系列博文:

注:本系列博客翻译自Rasa官方文档,并融合了自己的理解和项目实战,同时对文档中涉及到的技术点进行了一定程度的扩展,目的是为了更好的理解Rasa工作机制。与本系列博文配套的项目GitHub地址:ChitChatAssistant,欢迎starissues,我们共同讨论、学习!


1. Rasa简介与安装

1.1 Rasa简介

Rasa是一个开源机器学习框架,用于构建上下文AI助手和聊天机器人。Rasa有两个主要模块:

  • NLU:实现意图识别槽值提取,它把用户的输入转换为结构化数据;
  • Core:是一个对话管理平台,用于预测、决定下一步做什么;

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
评论 164
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值