rasa对话系统踩坑记(一)

前言

最近接到了一个任务,要做遗传方面的医疗诊断对话系统。经过前期的调研最终决定使用rasa_nlu和rasa_core这套框架。由于rasa版本更新频繁,使用中踩了不少坑,而且自定义了一些component,都在此记录下。最终我们项目的效果如下:


rasa对话系统踩坑记(一)_第1张图片
遗传咨询对话系统

系统能够实现收集患者信息,给出诊断结果和诊断建议,诊断结果和诊断建议是构建的知识图谱。

本文将具体介绍对话系统实现过程中的难点和解决方案。

demo的代码路径在:rasa_chatbot_cn,欢迎大家star。

需要申明下,此demo并不是公司真实项目。

rasa_nlu训练数据的生成

对话系统的冷启动都会遇到这样的问题,没有数据。这里我们会自己构建一些数据,具体代码在:chatito_gen_nlu_data,是使用chatito来生成rasa_nlu意图识别需要的数据,如下:


rasa对话系统踩坑记(一)_第2张图片
chatito配置图

具体的用法可以参照官网和上面的demo代码,其实原理很简单就是做了排列组合这个事。产生的json数据用于rasa_nlu的训练,这个数据需要反反复复的修改和完善,如果你有数据那更好就不需要做这一步了。在产生训练数据的时候需要确定的nlu的意图和实体类别,需要在domain.yml文件中配置intents和entities,电信项目中的intents和entities如下:

intents:

  - greet

  - confirm

  - goodbye

  - thanks

  - inform

  - request_management

  - request_search

  - deny

  - unknown_intent

entities:

  - item

  - time

  - phone_number

  - price

  - package

原创文章,转载请说明出处

你可能感兴趣的:(rasa对话系统踩坑记(一))