Skip to content

系统架构设计

架构概述

"岐黄智鉴"系统采用分层架构设计,通过前后端分离、模型服务化、容器化部署等方式,实现高效、可扩展的中医智能诊疗服务。(由于时间有限,前后端集成与知识图谱等组件仍在开发中)

整体系统架构

系统架构图

中医智能问诊对话界面

架构分层说明

前端展示层

技术选型:HTML5 + CSS3 + JavaScript

  • Web前端界面:提供用户友好的操作界面
  • 对话交互系统:实现流畅的问答交互体验
  • 结果展示组件:美观地展示中医诊断结果

主要功能

  • 用户输入症状描述
  • 实时对话交互
  • 诊断结果可视化展示
  • 响应式界面适配

API服务层

技术选型:FastAPI + Uvicorn

  • FastAPI网关:统一的API入口,提供RESTful接口
  • 请求路由模块:根据请求类型分发到对应处理模块
  • 响应处理模块:统一处理响应格式和错误处理

核心接口

python
# 主要API端点
POST /api/chat          # 对话接口
GET  /api/health        # 健康检查
POST /api/history       # 对话历史
GET  /api/models        # 模型状态

业务逻辑层

核心组件

  • 问诊对话管理:管理用户与AI的对话流程
  • 症状分析处理:解析和理解用户描述的症状
  • 诊断结果生成:基于AI模型输出生成结构化诊断

处理流程

  1. 接收用户症状描述
  2. 构建对话上下文
  3. 调用AI模型进行推理
  4. 解析模型输出结果
  5. 生成标准化诊断报告

AI模型层

技术选型:GLM-4.1V-9B + LoRA微调

  • GLM-4.1V基座模型:智谱AI的多模态大语言模型
  • LoRA微调适配器:针对中医领域的参数高效微调
  • 模型推理引擎:优化的推理服务,支持批处理

模型特点

  • 9B参数规模,适合个人GPU部署
  • 支持中文理解和生成
  • 具备多模态能力(文本+图像)
  • LoRA微调参数量仅92M

数据存储层

存储设计

  • 训练数据集:精心标注的1000+条中医医案数据
  • 对话历史缓存:Redis缓存用户对话历史
  • 配置文件存储:模型配置、系统参数等

数据格式

json
  {
    "messages": [
      {
        "role": "user",
        "content": "患者岳某,女,45岁。初诊:1979年12月12日。主诉及病史:前额及眼眶痛1个月,以中午最甚,其痛如裂,难以忍受。在某医院神经科检查诊断为“血管神经性头痛。”每日需服麦角胺、安乃近3次,可暂时缓解。已服药20多天,不能停药。并有疲倦、食少、心慌、气短疲乏。无外伤史。诊查:面色黄白,形体偏瘦,舌边有齿痕、苔白薄。气息不足、声音低弱。脉沉细。"
      },
      {
        "role": "assistant",
        "content": "<think>\n这是一个典型的中医辨证论治案例。我需要根据患者的症状、体征和病史进行辨证分析,然后给出相应的治疗方案。\n\n首先,整理患者的症状和体征:\n1. 主诉:前额及眼眶痛1个月,以中午最甚,其痛如裂,难以忍受\n2. 诊断:血管神经性头痛\n3. 用药情况:每日需服麦角胺、安乃近3次,已服药20多天,不能停药\n4. 伴随症状:疲倦、食少、心慌、气短疲乏\n5. 体征:面色黄白,形体偏瘦,舌边有齿痕、苔白薄,气息不足、声音低弱,脉沉细\n\n现在进行辨证分析:\n\n1. 头痛特点分析:\n   - 部位:前额及眼眶,属于阳明经循行部位\n   - 时间特点:中午最甚,中午为阳气最盛之时\n   - 性质:其痛如裂,难以忍受,属于剧烈头痛\n\n2. 全身症状分析:\n   - 疲倦、气短疲乏、气息不足、声音低弱:提示气虚\n   - 食少:提示脾胃功能虚弱\n   - 心慌:可能为气血不足,心失所养\n   - 面色黄白:提示气血不足\n   - 形体偏瘦:提示脾胃虚弱,气血生化不足\n\n3. 舌脉分析:\n   - 舌边有齿痕:为气虚、脾虚的表现\n   - 苔白薄:提示有寒湿或虚寒\n   - 脉沉细:提示气血不足,阳气虚弱\n\n综合分析:\n患者头痛部位在前额及眼眶,属于阳明经,中午最甚,可能是因为正午阳气最盛,而患者体质虚弱,不能承受阳气之盛,导致疼痛加剧。全身症状表现为明显的气虚、脾虚、气血不足之象。\n\n辨证:气虚血弱,脾虚清阳不升,阳明经气不利。\n\n病机:患者脾胃虚弱,气血生化不足,清阳不升,不能上荣头目,加之阳明经气不利,导致前额及眼眶剧烈疼痛。由于气血不足,正气虚弱,难以抗邪,故疼痛剧烈且持续不愈。\n\n治法:补中益气,升阳举陷,健脾养血,通络止痛。\n\n方药选择:\n可选用补中益气汤加减,以补中益气、升阳举陷为主,配合养血通络止痛之品。\n\n处方:\n黄芪30g 党参15g 白术12g 茯苓15g\n陈皮10g 升麻6g 柴胡6g 当归15g\n川芎12g 白芷10g 葛根15g 炙甘草6g\n生姜3片 大枣5枚\n\n方解:\n- 黄芪、党参、白术、茯苓、炙甘草:补中益气,健脾养胃\n- 升麻、柴胡、葛根:升阳举陷,引药上行\n- 当归、川芎:养血活血,通络止痛\n- 白芷:善治阳明经头痛\n- 陈皮:理气健脾\n- 生姜、大枣:调和脾胃\n\n加减:\n- 头痛剧烈可加全蝎3g、蜈蚣2条以通络止痛\n- 心慌明显可加酸枣仁15g、柏子仁15g以养心安神\n- 食欲不振可加砂仁6g、麦芽15g以开胃消食\n\n医嘱:\n1. 饮食宜清淡易消化,忌辛辣刺激、生冷油腻之品\n2. 保持充足休息,避免过度劳累\n3. 调节情志,保持心情舒畅\n4. 适当进行头部按摩,缓解头痛\n\n这个治疗方案主要是针对患者脾胃气虚、清阳不升的病机,通过补中益气、升阳举陷的方法来治疗头痛,同时兼顾养血通络止痛。由于患者长期服用西药,可能会影响脾胃功能,因此治疗上需兼顾调理脾胃,恢复正气。\n</think>\n<answer>\n# 中医辨证论治\n\n## 辨证分析\n\n根据患者症状和体征,我进行如下辨证分析:\n\n### 四诊合参\n**望诊**:面色黄白,形体偏瘦,舌边有齿痕、苔白薄 - 提示气血不足,脾虚湿盛\n**闻诊**:气息不足、声音低弱 - 提示肺气虚弱\n**问诊**:前额及眼眶痛1个月,中午最甚,痛如裂;疲倦、食少、心慌、气短疲乏 - 提示气虚清阳不升,阳明经气不利\n**切诊**:脉沉细 - 提示气血亏虚\n\n### 病机分析\n1. 头痛部位在前额及眼眶,属阳明经循行部位\n2. 中午头痛加剧,因午时阳气最盛,患者气虚不能承受阳气之盛\n3. 气短、疲倦、声音低弱、脉沉细均为气虚表现\n4. 舌边有齿痕、食少为脾虚湿盛之象\n5. 心慌为气血不足,心失所养\n\n### 证型诊断\n**气虚血弱,脾虚清阳不升,阳明经气不利**\n\n## 治法与方药\n\n### 治法\n补中益气,升阳举陷,健脾养血,通络止痛\n\n### 方药\n**补中益气汤加减**\n\n```\n黄芪30g    党参15g    白术12g    茯苓15g\n陈皮10g    升麻6g     柴胡6g     当归15g\n川芎12g    白芷10g    葛根15g    炙甘草6g\n生姜3片    大枣5枚\n```\n\n### 方解\n- 黄芪、党参、白术、茯苓、炙甘草:补中益气,健脾养胃\n- 升麻、柴胡、葛根:升阳举陷,引药上行\n- 当归、川芎:养血活血,通络止痛\n- 白芷:善治阳明经头痛\n- 陈皮:理气健脾\n- 生姜、大枣:调和脾胃\n\n## 医嘱\n1. 饮食宜清淡易消化,忌辛辣刺激、生冷油腻之品\n2. 保持充足休息,避免过度劳累\n3. 调节情志,保持心情舒畅\n4. 逐渐减少西药用量,避免依赖\n5. 建议每日上午9-11点(脾经当令之时)服药,以增强疗效\n\n此方案针对患者脾胃气虚、清阳不升的病机,通过补中益气、升阳举陷的方法治疗头痛,同时兼顾养血通络止痛,从根本上调理患者体质,减少头痛发作。\n</answer>"
      }
    ]
  },

部署支撑层

容器化部署

  • Docker容器:打包应用和依赖,确保环境一致性
  • Nginx代理:反向代理,负载均衡,静态文件服务
  • GPU资源管理:CUDA环境管理,显存优化

技术架构特点

模块化设计

  • 松耦合:各层之间通过标准接口通信
  • 可扩展:支持水平扩展和功能模块增加
  • 可维护:清晰的分层便于开发和维护

性能优化

  • 异步处理:FastAPI异步框架提升并发性能
  • 缓存机制:Redis缓存减少重复计算
  • GPU加速:CUDA加速模型推理过程

部署友好

  • 容器化:Docker确保部署环境一致性
  • 轻量化:LoRA微调降低部署资源需求
  • 可移植:支持Linux和Windows环境

数据流架构

请求处理流程

典型的用户请求处理流程

  1. 用户输入:用户在前端界面输入症状描述
  2. 请求转发:前端通过POST /api/chat发送请求到API网关
  3. 请求处理:API网关将请求转发给业务逻辑层
  4. 历史获取:业务逻辑层从数据存储获取用户对话历史
  5. 模型推理:调用AI模型进行智能诊断推理
  6. 结果返回:模型返回诊断结果给业务逻辑层
  7. 数据保存:保存本次对话记录到数据存储
  8. 响应生成:业务逻辑层返回处理结果给API网关
  9. 结果展示:前端接收JSON响应并向用户展示诊断结果

扩展架构

未来扩展点

  1. 多模态支持:增加图像分析能力(舌象、面诊)
  2. 知识图谱:集成中医知识图谱增强推理
  3. 个性化:基于用户历史的个性化推荐
  4. 集群部署:支持多GPU集群部署

接口标准化

  • RESTful API:标准化的API设计
  • OpenAPI文档:自动生成的API文档
  • 版本管理:API版本控制和向后兼容

架构优势

  1. 技术成熟:采用成熟稳定的技术栈
  2. 部署简单:一键Docker部署
  3. 资源友好:适合个人和小团队使用
  4. 扩展性强:支持功能和性能扩展

设计理念:在保证功能完整性的前提下,追求架构的简洁性和实用性,确保系统能够稳定运行并便于维护。

基于 VitePress 构建