rasa初探

目标:初步了解rasa框架,运行rasa官网的教程

环境:win10、anaconda version : 4.8.2(python version : 3.7.6.final.0)

 

Rasa是一个开源机器学习框架,用于构建上下文AI机器人。

Rasa有两个主要模块:

  • Rasa NLU :用于理解用户消息,包括意图识别和实体识别,它会把用户的输入转换为结构化的数据。
  • Rasa Core:是一个对话管理平台,用于举行对话和决定下一步做什么。

术语

  • intents:意图
  • pipeline:
  • story:描述场景和流程,一个story就是一段用户与机器人之间的真实对话,让机器人从真实的会话数据中学习。通常包含用户的意图和机器人的回答,而且是多个来回。
  • domain:可以理解为机器人的知识库,定义了用户意图(intents)、机器人的动作(actions),以及动作的内容模板(templates)。

 

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/.tar.gz

经过训练生成的模型数据

 

3. 训练

$ rasa train

这个命令启动了机器人的 训练过程,我们可以看到一大串输入提示,表示正在训练机器人。最后在models文件夹下生成了文件 .tar.gz,这就是经过训练后的模型数据

 

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

你可能感兴趣的:(python,rasa)