通过python的transfermers库,使用本地部署的chatglm-6B大语言模型,实现根据患者自述自动生成病历功能,输入为病人自述,输出为json格式的病历结果。
功能定位:患者来医院挂号获取病历时,先简单向系统描述自身病情,系统从患者自述中提取病历相应的条目,自动填写到病历相应位置,生成病历,并传到医生端,供医生查看病人的基本病历信息。
输出的JSON对象包含以下键:
- 姓名:病人的名字
- 年龄:病人的年龄
- 主诉:病人主要的症状
- 持续时间:症状持续的时间
- 既往病史:病人的历史疾病
- 过敏药物:病人对哪些药物过敏
如果某个信息在文本中没有提及,则使用['未提供']
表示。
输入示例:'我叫林凡,今年42岁,从3天前开始一直觉得肩膀酸痛,几十年前曾经得过肩周炎,但是已经痊愈,没有发现药物过敏'
输出示例:{'姓名': '林凡', '年龄': '42岁', '主诉': '肩膀酸痛', '持续时间': '3天', '既往病史': '肩周炎', '过敏药物': '未提供'}
将输出的json数据传给前端,填写到病历的相应位置中。
1.导入必要的库:
re
:正则表达式库,用于文本处理。json
:处理JSON数据格式。transformers
:提供预训练模型和自然语言处理工具。
2.定义数据结构和示例,用于后续prompt:
schema
:定义了需要从患者自述中提取的信息种类,这里是['姓名','年龄','主诉','持续时间','既往病史','过敏药物']。