认识rasa
- Rasa是一套开源机器学习框架,用于构建基于对话上下文的AI小助手和聊天机器人。
- Rasa有两个主要模块:
- Rasa NLU 用于对用户消息内容的语义理解;
- Rasa Core 用于对话管理。
- 配置文件
- Rasa主要的的配置文件有NLU配置、Stories、Domain等
- NLU配置作为实现自然语言的识别,Stories作为会话的剧本、Domain作为处理Action的模本。
- NLU训练数据
- NLU 是英文 Natural Language Understanding 的简称,也就是自然语言理解,这个模块用于对用户消息内容进行语义理解并转换成意图。在 Rasa 这里,需要提供一份训练数据,Rasa NLU 会基于这份数据进行模型训练,然后通过模型对用户消息进行语义理解,主要是意图识别和槽值提取
-
NLU Config
-
指定训练文字的Pipeline过程,比如指定语言类型、分词模块、词向量Embedding等
-
-
Stories
-
Stories可以理解为对话的场景流程,为什么机器人会基于对话上下文呢? 其实就是这里我们定义的不同场景(剧本),一个 story 是一个用户与机器人之间真实的对话,这里面包含了可以反映用户输入(信息)的意图和实体以及小助手在回复中应该采取的 action(行动)
-
-
Domain
-
Domain 可以理解为机器的知识库,其中定义了intents(意图),actions(动作),以及对应动作所反馈的templates(内容模板),用户说的话转化为意图intents,根据意图提供相对应的响应内容Action:
-
训练模型
-
训练nlu意图:
- python -m rasa_nlu.train -c config/nlu_config.yml --data config/nlu_data.md -o models
-
训练Stories及Action:
- python -m rasa_core.train -d config/domain.yml -s config/stories.md -o models/dialogu
-
启动nlu:
- python -m rasa_nlu.server --path models/
-
启动core:
- python -m rasa_core.run --enable_api --port 5005 -d models/dialogue
run --enable_api --port 5005 -d models/dialogue