一、rasa生态工具
数据生成工具:
- chatito
- chatette
数据标注工具:
- doccano
RasaChinese软件包【官方推荐】
二、对话驱动开发
对话驱动开发(CDD):开发者观察用户的行为,并根据这些观察来提升对话机器人的表现
包含如下动作:
- 分发
将开发者的原型产品尽可能快地给到用户进行测试。不接触用户,不了解用户的真实需求,很容易无的放矢 - 审阅
花时间仔细研读用户和机器人的对话。不能只看粗略的统计报表,要研究真实用户的对话过程 - 标注
根据真实对话的数据来提高NLU模型的表现。项目启动时依据开发者自己想出来的离子,但是生产环境中应该确保来自真实对话数据占总数据的比例高于90% - 测试
用整个对话作为端到端的测试用例。产品发布时需要几十条端到端测试用例去覆盖关键的会话路径。 - 追踪
根据业务场景想出来一些方法来判断对话过程是否完成了目标。 - 修复
研究那些进行比较顺利或失败的对话,很成功的离子可立马作为测试用例,失败的可以揭示那些地方需要更多的训练数据或代码存在bug
三、rasa X
Rasa X
- 分发:三种分发方式:分析网址、使用后台界面、使用外部通道。rasa X会完整记录对话过程。
- 审阅:conversation inbox界面中,可以筛选对话,审阅对话,给对话打标签
- 标注:NLU Inbox中记录消息,标注NLU消息是否正确
- 测试:所有的对话记录都有一个对应的端到端版本的故事,rasa保持该故事到tests目录中。
- 追踪:rasa提供基于web的API,利用API给特定的对话打上标签,标记对话是成功/失败
- 修复:通过过滤标签等操作,开发者可以获得可能存在问题的对话。通过增加训练样本、修改组件配置等修复;如果是故事策略导致,可以通过交互式学习生成新的故事或调整策略等
四、交互式学习
交互式学习
启动方式:rasa interactive 或者rasa X
- 启动步骤:① 启动动作服务器:rasa actions ② rasa interactive
- 进行交互式学习模式,rasa要求用户确认每个预测结果(NLU和Core)
- 检查和修正NLU结果:每次输入,rasa都会要求用户确认NLU解析结果是否正确。如果错误,会进入纠错步骤,要求用户提供正确的
4.检查和修正Core结果: 在NLU解析之后,需要根据NLU解析结果和其他状态(如历史动作和词槽条件)预测下一步动作。在交互式学习模式下,首先rasa会打印出当前的对话状态供用户观察,然后预测下一个动作,接着rasa会给出当前预测的下一个动作,要求用户确认是否正确
Python调试方式
- pdb模式
- ide调试