一、相关竞品产品调研

1.左手医生
https://open.zuoshouyisheng.com/--优先
2.百度灵医
https://01.baidu.com/index.html (线上无法体验)
3.科大迅飞-全科辅诊诊疗系统
http://www.iflytek.com/health/qkfzzl (线上无法体验)
4.阿里健康
https://www.doctoryou.ai/dm
5.腾讯
https://tencentmiying.com/official/

二、相关文章

1.https://zhuanlan.zhihu.com/p/379202949
2.https://zhuanlan.zhihu.com/p/59401605

三、开源项目

1.基于知识图谱和向量检索的医疗诊断问答系统
https://github.com/wangle1218/KBQA-for-Diagnosis
2.知识图谱问答
https://github.com/wangle1218/QASystemOnMedicalKG
3.医疗知识图谱问答
https://github.com/LuoFanA595/Medical-Robot-AI

四、baseline选型

1.baseline参考源码:https://github.com/LuoFanA595/Medical-Robot-AI
2.使用框架:rasa、官方网站:http://wwww.rasa.com
3.技术架构选型:为多种问答系统的综合应用,包括:问答型、任务型、闲聊型,其中问答型包括:FAQ、KBQA(知识图谱)
4.技术流程图:后期预期加入asr、tts模块
技术架构.png

五、对话系统环境配置

1.baseline环境配置:知识图谱部分

(1)如果是windows下直接参考git相关配置
(2)一般都是linux下配置,部分内容需要修改

#1.配置环境:创建所需环境:
conda create -n 环境名 python=3.7
#激活环境:
conda activate 环境名
#2.项目所需安装包已打包在requirements.txt中Terminal终端命令执行:
pip install -r requirements.txt 即可安装

(3)知识图谱数据库neo4j下载、安装、运行:
1)下载:
从官网:https://neo4j.com/download-center/#community 下载3.5.35版本(linux)。
2)解压:下载完成后通过命令:
tar -zxvf neo4j-community-3.5.35-unix.tar 解压
3)启动:neo4j命令:
./bin/neo4j start
4)web访问:在浏览器中输入,默认端口7474
http://localhost:7474/browser/
显示如图则启动成功:
20210227101959817.png
5)结构化疾病数据入库:
python build_medicalgraph.py
注意修改代码中数据库账户和秘密,最终可视化效果:
graph_summary.png

2.闲聊部分---这部分是基于理解自己添加的。

(1)环境安装

pip install paddlepaddle
pip install paddlenlp
pip install paddle

(2)使用模型
plato-mini

六、代码运行与服务启动

1.rasa后台服务启动(启动有先后顺序)
#(1)运行rasa cors,作用对话状态跟踪,对话管理部分:
 nohup python3 -m rasa run -vv --cors "*" --port 5005 --endpoints endpoints.yml --credentials 
 credentials.yml --debug >log1.log 2>&1 &

#(2)运行 rasa action,行为管理:
nohup python3 -m rasa run actions --port 5055 --actions actions --debug >log2.log 2>&1 &

#(3)用端口将文件映射到本地:
python -m http.server 8888

#(4)docker容器启动:
docker run -p 8000:8000 rasa/duckling
2.前端接口修改

修改路径:
rasa_bot_front_dist-main/static/js/main.341de945.chunk.js
修改ip地址:http://192.168.2.220:5055/webhooks/rest/webhook/
将ip修改为rasa启动服务端地址
之后,在浏览器打开rasa_bot_front_dist-main/index.html即可对话

七、baseline知识图谱实现功能

1.知识图谱实体类型
实体类型中文含义实体数量举例
Check诊断检查项目3,353支气管造影;关节镜检查
Department医疗科目54整形美容科;烧伤科
Disease疾病8,807血栓闭塞性脉管炎;胸降主动脉动脉瘤
Drug药品3,828京万红痔疮膏;布林佐胺滴眼液
Food食物4,870番茄冲菜牛肉丸汤;竹笋炖羊肉
Producer在售药品17,201通药制药青霉素V钾片;青阳醋酸地塞米松片
Symptom疾病症状5,998乳腺组织肥厚;脑实质深部出血
Total总计44,111约4.4万实体量级
2、知识图谱实体关系类型
实体关系类型中文含义关系数量举例
belongs_to属于8,844<妇科,属于,妇产科>
common_drug疾病常用药品14,649<阳强,常用,甲磺酸酚妥拉明分散片>
do_eat疾病宜吃食物22,238<胸椎骨折,宜吃,黑鱼>
drugs_of药品在售药品17,315<青霉素V钾片,在售,通药制药青霉素V钾片>
need_check疾病所需检查39,422<单侧肺气肿,所需检查,支气管造影>
no_eat疾病忌吃食物22,247<唇病,忌吃,杏仁>
recommand_drug疾病推荐药品59,467<混合痔,推荐用药,京万红痔疮膏>
recommand_eat疾病推荐食谱40,221<鞘膜积液,推荐食谱,番茄冲菜牛肉丸汤>
has_symptom疾病症状5,998<早期乳腺癌,疾病症状,乳腺组织肥厚>
acompany_with疾病并发疾病12,029<下肢交通静脉瓣膜关闭不全,并发疾病,血栓闭塞性脉管炎>
Total总计294,149约30万关系量级
3、知识图谱属性类型
属性类型中文含义举例
name疾病名称喘息样支气管炎
desc疾病简介又称哮喘性支气管炎...
cause疾病病因常见的有合胞病毒等...
prevent预防措施注意家族与患儿自身过敏史...
cure_lasttime治疗周期6-12个月
cure_way治疗方式"药物治疗","支持性治疗"
cured_prob治愈概率95%
easy_get疾病易感人群无特定的人群

4、理论上支持问答类型

问句类型中文含义问句举例
disease_symptom疾病症状乳腺癌的症状有哪些?
disease_cause疾病病因为什么有的人会感冒
disease_acompany疾病的并发症失眠有哪些并发症?
disease_not_food疾病需要忌口的食物感冒不能吃什么
disease_do_food疾病建议吃什么食物感冒了能吃什么
food_not_disease什么病最好不要吃某事物什么病不能吃豆腐
disease_drug啥病要吃啥药感冒应该吃什么药
drug_disease药品能治啥病板蓝根颗粒能治啥病?
disease_check疾病需要做什么检查脑膜炎怎么才能查出来?
check_disease 检查能查什么病全血细胞计数能查出啥来?
disease_prevent预防措施怎样才能预防肾虚?
disease_lasttime治疗周期感冒要多久才能好?
disease_cureway治疗方式高血压要怎么治?
disease_cureprob治愈概率白血病能治好吗?
disease_easyget疾病易感人群什么人容易得高血压?
disease_desc疾病描述糖尿病

对话效果展示:
2022-09-08 16-52-39屏幕截图.png

八、目前对话系统存在的问题和解决方法

1.目前的对话系统上还存在部分bug,存在提问无法回答的情况
2.目前还无法支持多轮对话,无法实现和用户的交互式问答
3.对用户提问问题的多样性(相同问题不同的提问方式)这种情况还无法很好兼容
4.基于检索的问答FAQ功能还没有加上去
5.根据用户疾病症状,预测疾病功能还不能实现
6.目前疾病知识图谱的知识结构化还不完全,需要继续做信息抽取

针对以上问题,目前都有相关解决办法,需要后续持续推进开发。

九、多轮对话

1.不同疾病共有交互问题

年龄、性别、症状持续时间

标签: none

添加新评论