目录
前言
使用如下命令可创建一个建议的Rasa项目
rasa init --no-prompt
创建完成后,会有很多文件,这些文件的作用如何,我们一步步来了解
文件名称 | 作用说明 |
---|---|
actions.py | 可以编写一些自定义类库,处理用户发来的数据,自定义的流程及返回内容 |
config.yml ‘*’ | 配置文件,包含诸如管道、语言、策略等等的配置 |
credentials.yml | 配置到其他服务的详细信息,如Rasa-x的使用端口 |
data/nlu.md ‘*’ | 意图文件以及意图对应的标志性词汇,通过词汇,可以帮助机器人识别用户意图 |
data/stories.md ‘*’ | 机器人识别意图后,需要作出反应,这个配置文件及是机器人对应不同的用户意图做出不同的响应 |
domain.yml ‘*’ | 机器人工作的配置文件,详细记载机器人可以做出的动作内容,结合stories,与用户交互 |
endpoints.yml | 接到fb messenger等通道的详细信息,比如一些数据库的连接配置 |
models/.tar.gz | 你的初始模型 |
简单对话流程
当用户发出 hello robot ,Rasa回去NUL中寻找对应的意图,这里面是可以根据相似度匹配的,我发送的是hello robot,而NUL中只有hello,但是机器人同样可以做出准确的呼应。
nlu.md 识别意图
stories.md 做出回应
domain.yml 具体回应内容
官方对Rasa架构的解释
- 1. 收到消息并将其传递给解释器(Interpreter),解释器将其转换为包含原始文本,意图和找到的任何实体的字典。这部分由NLU处理。
- 2. 跟踪器(Tracker)是跟踪对话状态的对象。它接收新消息进入的信息。 策略(Policy)接收跟踪器的当前状态。
- 3. 该策略选择接下来采取的操作(action)。
- 4. 选择的操作由跟踪器记录。
- 5. 响应被发送给用户。