本毕业设计的题目为 MedVision-RAG 智能视障辅助系统,目标是面向视障人士和老年用户,提供药品说明书识别、药品信息问答和语音交互服务。系统围绕“看不清药品说明书”和“难以快速获取安全用药信息”这两个实际问题展开设计,形成了一个集图像识别、文本理解、知识检索、语音交互于一体的多模块系统。
当前系统采用前后端分离与双后端协同的实现方式:
- 前端包括网页端和微信小程序端,负责拍照上传、文件选择、语音输入、结果展示和语音播报。
- Java 后端负责业务编排、数据库存储、接口代理、日志管理和系统安全控制。
- Python AI 服务负责 OCR 识别、语音转写、意图分析、RAG 检索问答、风险检测和语音合成。
- MySQL 用于保存药品元数据和聊天日志,ChromaDB 用于保存药品说明书的向量化知识库。
系统目前已经完成从“上传药品图片或文档”到“识别内容并进行语音问答”的完整闭环,具备毕业设计演示和答辩汇报所需的核心能力。
系统支持图片、PDF、Word 文档三类输入。对于普通图片,系统直接调用 OCR 模块提取文本;对于 PDF 文档,先检测页面是否可直接提取文字,若为扫描件则将页面渲染为图片后再进行 OCR;对于 Word 文档,系统优先读取正文和表格内容,当文本量不足时继续提取嵌入图片并执行深度识别。这样可以兼容真实场景下常见的药盒照片、扫描版说明书和电子版文档。
在 OCR 引擎上,系统采用双引擎策略:优先使用 macOS Vision OCR,在异常场景下使用 Tesseract 作为回退方案,从而增强识别稳定性。识别后的文本还会经过 Unstructured 清洗,包括段落合并、空白清理和项目符号清理,以提高后续问答质量。
系统的核心问答模块采用 Adaptive RAG 思路。对于较短说明书文本,系统直接将完整内容输入模型进行理解;对于较长说明书文本,系统先进行分块,再使用向量模型编码并写入 ChromaDB,随后根据用户问题执行相似度检索,提取最相关的片段交给大模型生成回答。
这种设计兼顾了准确性和效率:
- 短文本场景避免无必要的向量检索开销;
- 长文本场景能够降低上下文冗余,提高回答聚焦程度;
- 向量库按药品
medicine_id分集合存储,便于后续扩展和历史药品检索。
在语音输入方面,系统已经实现“录音上传 + 自动转写 + 问答返回 + 语音播报”的完整链路。后端使用 Whisper Large V3 完成语音转写,并结合语音活动检测过滤静音音频,再使用大模型对医学术语进行纠错,以减少药名、剂量和症状词汇的识别误差。
在输出阶段,系统支持语音播报,并针对视障用户进行了无障碍优化,例如页面关键状态语音提示、语音播放队列、回答打断机制等,使交互方式更加贴近真实使用需求。
为了避免系统被用于不安全或偏离主题的提问,项目加入了风险关键词检测与风险提示机制。对于敏感问题,系统能够进行识别并触发相应告警流程。与此同时,系统在工程实现上补充了内部接口鉴权、跨域白名单控制、管理员接口 IP 白名单以及敏感配置项环境变量化处理,提升了整体安全性和可维护性。
系统已经支持中英文切换。除普通文本回答外,当用户询问“用法、用量、禁忌、副作用”等内容时,系统还能自动生成结构化用药提醒卡片,提取关键字段进行可视化展示。这一设计提升了药品信息表达的直观性,也体现了系统在人机交互层面的优化能力。
结合当前代码实现和开发日志,已完成的主要功能如下:
- 已完成网页端基础交互界面,支持拍照/文件上传、聊天问答、语音播报、语言切换和 PDF 报告导出。
- 已完成微信小程序端主要功能开发,支持拍照、文件选择、语音交互、无障碍语音提示和智能播报队列。
- 已完成 Java 后端业务接口,包括药品上传、聊天问答、语音转写代理、手动文本分析、药品搜索及聊天日志记录。
- 已完成 Python AI 服务模块化重构,将 OCR、ASR、RAG、意图识别、风险检测、邮件告警、TTS 等功能拆分为独立服务模块。
- 已完成多格式说明书识别,支持图片、PDF、Word 文档,并对扫描件和嵌入图片场景进行了兼容处理。
- 已完成自适应 RAG 检索策略,可根据说明书长度自动选择全量阅读或向量检索模式。
- 已完成语音识别链路,包括静音过滤、Whisper 转写和医学术语纠错。
- 已完成风险关键词检测、聊天日志落库、分页查询和管理端统计分析接口。
- 已完成中英双语支持和结构化用药提醒卡片功能。
- 已完成 PDF 问诊记录导出,满足汇报和留档展示需求。
- 已完成核心安全加固,如内部接口代理、CORS 白名单、管理员接口 IP 白名单和敏感配置移出代码。
- 已完成核心测试与稳定性优化,当前代码已具备完整演示条件。
从整体进度来看,项目的核心功能开发和联调工作已经基本完成,当前主要处于答辩前的测试完善、演示优化和文档整理阶段。
接下来将重点完成以下工作:
- 对网页端和小程序端进行最终联调,重点检查上传、问答、语音播报和导出流程的稳定性。
- 进行真机环境测试,补充不同网络和不同终端下的使用验证。
- 继续优化 OCR 识别异常场景和语音识别失败时的回退提示。
- 整理系统架构图、核心流程图、数据库设计图和答辩演示材料。
- 完善论文中“系统实现”和“实验分析”部分的文字描述,使其与实际代码和演示结果保持一致。
为便于向老师汇报,后续安排可概括为以下四个阶段:
| 时间阶段 | 计划内容 |
|---|---|
| 当前至答辩前 | 完成最终测试、修复小问题、整理 PPT 与演示脚本 |
| 答辩后一周内 | 补充真机测试记录、完善系统截图与实验数据 |
| 论文提交前 | 完善论文定稿,统一系统说明、流程图和功能截图 |
| 后续扩展阶段 | 继续推进小程序移动化优化、设备接入和实际场景应用探索 |
目前本课题已经完成了系统主体设计、核心功能实现和主要模块联调,已经具备较完整的展示效果。后续工作的重点不再是大规模新增功能,而是围绕系统稳定性、论文材料和答辩展示质量进行收尾与优化。
可以在汇报结尾概括为:
目前我的毕业设计已经完成了系统的整体架构搭建和核心功能实现,主要包括药品说明书识别、自适应 RAG 问答、语音交互、风险控制以及双端展示。当前系统已经能够完成从上传药品资料到生成问答结果的完整闭环。下一步我会重点进行真机测试、细节优化和论文材料整理,确保后续答辩和论文提交工作顺利完成。