目标:初步了解rasa框架,运行rasa官网的教程
环境:win10、anaconda version : 4.8.2(python version : 3.7.6.final.0)
Rasa是一个开源机器学习框架,用于构建上下文AI机器人。
Rasa有两个主要模块:
术语
1. 安装
$ pip install rasa -i https://pypi.tuna.tsinghua.edu.cn/simple/ --timeout=100000
到安装tensorflow模块的时候,经常会超时。只好多试几次,最后总算成功了。祝各位好运吧。
2. 创建一个项目
先自己创建一个目录
$ mkdir rasa_tutorial
$ cd rasa_tutorial
$ rasa init --no-prompt
运行后,创建了一批文件:
__init__.py |
空文件 |
actions.py |
自己的业务代码可以写在这里,默认都被注释掉了 |
config.yml ‘*’ |
Rasa NLU 和 Rasa Core 的配置文件 |
credentials.yml |
定义和其他服务连接的一些细节,例如rasa api接口 |
data/nlu.md ‘*’ |
Rasa NLU 的语义训练数据,主要包括意图(intent)和槽值(slot)。主要用于训练机器人对用户消息进行予以理解,从而 识别用户的意图。 |
data/stories.md ‘*’ |
Rasa stories 数据,通常是一连串多轮对话, |
domain.yml ‘*’ |
Rasa domain 文件,AI机器人的知识库,与nlu.md和stories.md中的意图和场景要有对应。 |
endpoints.yml |
和外部消息服务对接的 endpoins 细则,例如 fb messenger |
models/ |
经过训练生成的模型数据 |
3. 训练
$ rasa train
这个命令启动了机器人的 训练过程,我们可以看到一大串输入提示,表示正在训练机器人。最后在models文件夹下生成了文件
4. 对话
$ rasa shell
启动了一个命令行环境,你可以开始于机器人对话了!
5. 为机器人增加自己的对话策略
(1)修改domain.yml
在 intents里面,增加一行”愤怒“的意图
- mood_angry
在response一节的最后,增加两行,表示机器面对用户愤怒情绪的时候,回答一句话”Be cool!“:
utter_angry:
- text: "Be cool!"
(2)修改 data/nlu.md文件
在 data/nlu.md 文件最后增加几行,表示用于识别用户愤怒情绪的词槽
## intent:mood_angry
- hate you
- hate
(3)修改data/stories.md文件
增加几行,表示机器人面对用户愤怒情绪时的一段对话场景,先提醒用户冷静,再询问是否需要帮助。
## angry path
* mood_angry
- utter_angry
- utter_did_that_help
6. 重新训练,并进入对话环境
$ rasa train
$ rasa shell