最近对 Rasa 产生了浓厚的兴趣,准备用Rasa打磨一下聊天机器人,所以做了一些调研和学习,准备记录一下,这是第一篇,感兴趣的同学可以参考。
Rasa是一套开源机器学习框架,用于构建基于上下文的AI小助手和聊天机器人。Rasa有两个主要模块:Rasa NLU 用于对用户消息内容的语义理解;Rasa Core 用于对话管理(Dialogue management)。Rasa官方还提供了一套交互工具 RasaX 帮助用户提升和部署由Rasa框架构建的AI小助手和聊天机器人。
学习一套东西最好的方法是从官方文档开始,Rasa官方文档相当贴心,我们从 Rasa User Guide 走起。
一、安装Rasa及RasaX
我是在Ubuntu16.04, Python3 的 virtualenv 环境下测试安装的:
virtualenv -p python3 venv
source venv/bin/activate
pip install rasa-x --extra-index-url https://pypi.rasa.com/simple
如果一切正常,rasa 及 rasa x 将同时被安装,如果你不希望使用 RasaX,那么安装时直接"pip install rasa"即可,当然还可以继续安装 Rasa NLU 文本分析时所需的一些依赖,此处暂时忽略。
二、运行官方示例
Rasa 官方 tutorial 示例相当贴心,即使你没有安装rasa,也可以在这个页面通过浏览器运行示例代码,如果已经安装了,可以在自己的电脑上通过命令行follow整个流程。
1. 创建默认的初始项目
在终端运行:
rasa init --no-prompt
这个过程将有一个很快速的 Rasa 相关模型训练过程展示,最终提示:
...
NLU model training completed.
Your Rasa model is trained and saved at '/home/textminer/rasa/default/models/20190821-205211.tar.gz'.
If you want to speak to the assistant, run 'rasa shell' at any time inside the project directory.
如果不加 --no-prompt,会有几个问题提示。你也可以直接通过浏览器在官方页面执行“run”按钮,结果是这样的:
这个命令将在当前目录下新建以下文件:
__init__.py
空文件
actions.py
可以自定义 actions 的代码文件
config.yml ‘*’
Rasa NLU 和 Rasa Core 的配置文件
credentials.yml
定义和其他服务连接的一些细节,例如rasa api接口
data/nlu.md ‘*’
Rasa NLU 的训练数据
data/stories.md ‘*’
Rasa stories 数据
domain.yml ‘*’
Rasa domain 文件
endpoints.yml
和外部消息服务对接的 endpoins 细则,例如 fb messenger
models/.tar.gz
初始训练的模型数据
其中标志有 ‘*’ 的文件是比较重要的文件,以下我们来详细的了解。
继续阅读 →