【社会服务+社会公益赛道】药安心:多模态离线弱网用药安全智能

【标签】 按所选赛道选择话题标签:生活娱乐/学习工作/社会服务/硬件交互必须四选一;参加附加赛题的还可加选 社会公益 标签。(需要跟报名通过的赛道保持一致)

【标题】 社会服务+社会公益赛道】药安心:多模态离线弱网用药安全智能
(示例:【生活娱乐赛道】+XXXX

【正文】 至少包含以下 4 个部分,可以增加额外的部分(比如自我介绍、经验总结、踩坑复盘等)

0. 先和大家打个招呼吧 :waving_hand:

  • 你是谁:大一计科学生

  • **你是怎么用 TRAE 把 Demo 做出来的:**简单地描述内心的想法和创意,然后将前后端的工作都交给他,我只需要作为验收官。即使知识浅薄,技术代码层面也不过关,也能制作出像样的可正常使用的软件,并且还能拥有不错的交互体验和日常用途。

  • 让我觉得"原来这么简单"的瞬间

    语音识别,是我原本以为搞不定的坎。

    一开始我用的是浏览器的内置语音识别,识别率很差,方言完全不行。我觉得这个问题无解,因为做一个好的语音识别引擎,我需要学习的内容太多

    后来我直接对 TRAE 说:

    “语音识别太差了,我要换方案。你帮我用 getUserMedia 录音,然后自己写一个 WAV 编码函数把音频转成 16kHz 单声道,然后再 POST 到后端的 Whisper 做识别。”

    然后它就真的给我写了一个完整的 WAV 编码器——从 AudioContext 解码、重采样到 16kHz、PCM 16-bit 编码、WAV 文件头写入——全部手写,没有任何第三方库。我完全不懂音频编码是什么,但 TRAE 帮我跨过去了。

  • 做这个项目的五天半里,我大概有60% 的时间是在"想清楚我要什么 + 跟 TRAE 对话",真正"等它生成 + 验证"的时间只占 40%。这和以前我尝试学编程时的体验完全不同——以前是 80% 的时间在纠结语法和调试,20% 在想产品。

1. Demo 简介

  • 是什么:产品形态:PWA(渐进式 Web 应用),基于 FastAPI 后端 + 纯 HTML/CSS/JS 单文件前端的轻量级 Web 系统。支持浏览器直接访问,可通过 Service Worker 实现离线缓存和桌面安装,无需下载 App。

    技术架构

    后端:Python FastAPI 异步框架 + Uvicorn ASGI 服务器 数据库:SQLite + WAL 模式(零配置、支持并发读写) AI 引擎:Ollama(Qwen2.5 系列本地推理,0.5B~7B)+ faster-whisper(本地语音识别)+ 百度 OCR(拍照识别药盒/报告)

    前端:单文件 SPA(HTML + CSS + JS),PWA 支持离线缓存和桌面安装,暗色模式自适应,iOS 风格底部弹窗动画

  • 面向谁:核心用户:老年慢病患者及其家属,居住环境偏僻,且长时间存在弱网或断线的情况。目标人群患有高血压、糖尿病、冠心病等慢性病,日常需同时服用 3-8 种药物,面临多药联用冲突风险、服药遗忘、体检报告看不懂三大痛点。

  • 主要功能:主要功能

    1. 拍照识药 + 冲突检测:用户用手机摄像头拍摄药盒,百度 OCR 提取批准文号和药品名称,通过六层评分匹配策略(批准文号精确匹配 → 通用名精确匹配 → 商品名精确匹配 → LIKE 模糊匹配 → 反向 LIKE 匹配 → 数字部分回退)在 3701 种药品数据库中定位。选中的药品两两组合查询 drug_interactions 表,输出严重/中度/轻度三级风险报告(含机制说明和用药建议),同时检测同类重复用药和禁忌交叉验证。

    2. 语音问诊(三层多跳推理):用户用自然语言描述不适症状,faster-whisper 本地语音识别转文字,后端通过三层推理引擎分析:第一层 96 个症状关键词直接匹配疾病;第二层在 14 个节点的疾病关系图上 BFS 宽度优先搜索(最大 3 跳,置信度衰减因子 0.75),推导并发症和间接风险;第三层将推导疾病与当前用药做禁忌交叉验证。返回因果链 + 鉴别诊断 + 分级行动建议。

    3. 体检报告解读 + 用药管理:拍照上传血常规/生化报告单,OCR 提取检验指标,与 lab_reference_ranges 表对比标注正常/警告/危险三级,Ollama AI 生成白话解读。配套服药记录管理、按星期设置的用药提醒、首页今日提醒汇总。

2. Demo 创作思路

  • 灵感来源:我的奶奶今年 80+ 岁,居住在农村,患有高血压、糖尿病和冠心病,每天需要服用四种药物。有一次她感冒了,自己去药店买了布洛芬吃,结果胃出血住院,因为两种药物连用是有风险的,而药店的店员和她自己都不知道这个风险。

    而且她经常忘记吃药,或者重复吃药,早上吃了降压药,中午不记得又吃了一片,导致血压过低头晕摔倒。体检报告拿回来也看不懂,她完全不知道是什么意思,也不清楚该不该告诉医生调整用药。

    为了解决她的困难,以及想要对自己掌握的信息和内容制作成一个可以使用的软件,接触到了Trae

  • 想解决的问题:我国 60 岁以上老年人中,超过 75% 患有至少一种慢性病,平均同时服用 4-6 种药物。存在三个核心问题:

    1. 药物相互作用风险隐蔽:多种药物联用可能产生协同毒性或相互拮抗,但老年人和家属缺乏便捷的检测手段。例如,阿司匹林与布洛芬联用会使消化道出血风险提升 3-5 倍,但多数人并不知情。

    2. 多科室处方缺乏统一管理:老年人常在不同医院、不同科室就诊,各科室开具的处方之间缺乏交叉审核,药物"打架"时有发生。

    3. 症状描述与疾病关联判断困难:老年人出现头晕、乏力、脚肿等症状时,难以判断是药物副作用、原有疾病进展,还是新发疾病,往往延误就诊。

  • 为什么做这个方向:需求真实

    • 中国 2.6 亿 60 岁以上人口,1.8 亿患有慢性病,每年因药物不良反应住院的老年人超过 250 万例

    • 这些不良反应中,约 30% 是可以通过药物相互作用筛查提前预防的

    • 现有的药物查询工具(如丁香园用药助手)面向医生,操作复杂,老年人不会用

    方案可行

    • 手机拍照 + OCR 识别药盒,零学习成本

    • 本地 AI 模型(Ollama)保障隐私,无需联网上传数据

    • 中文语音输入适配老年人操作习惯,解决打字困难

    • 技术栈轻量(Python + SQLite + 单文件前端),部署成本近乎为零

    社会价值

    • 降低老年人因药物相互作用导致的住院率和死亡率

    • 减轻家庭照护负担,减少"一人住院、全家奔忙"的局面

    • 推动 AI 技术从"炫技"走向"普惠",让技术真正服务于弱势群体

3. Demo 体验地址(三选一)

4. TRAE 实践过程

  • 因pc端部分数据丢失,现使用手机端云端查看开发历程和截图记录以及部分Session ID

  • 4386376571432256:f2c8c3760198b9de24cf25a39aac9dbb_6a4aa354ec1c2cbd591ccde2.6a4bb432860b96293374cebd.6a4bb432860b96293374cebb:TRAE Work CN.0.1.30.no_sid.no_ppe.T(2026/7/6 21:57:06)

  • 4386376571432256:3c698db59ff098da8f6e5404e3a7adb6_6a3f7bd21020fba44e8b4d96.6a3fd29e1020fba44e8b5711.6a3fd29e1020fba44e8b570f:TRAE Work CN.0.1.30.no_sid.no_ppe.T(2026/6/27 21:39:42)

  • {
    “createdAt”: 1781942701001,
    “messageId”: “6a3649ad3becd17e7c09aa3d”,
    “replyToMessageId”: “6a3649ad3becd17e7c09aa3b”,
    “sessionId”: “6a3610aab1587432c4eb545d”,
    “deviceid”: “4346847850145722”,
    “userId”: “4386376571432256”,
    “location”: “CN”
    }

  • {
    “createdAt”: 1781950829001,
    “messageId”: “6a36696d3becd17e7c09ae6c”,
    “replyToMessageId”: “6a36696d3becd17e7c09ae6a”,
    “sessionId”: “6a364a433becd17e7c09aa52”,
    “deviceid”: “4346847850145722”,
    “userId”: “4386376571432256”,
    “location”: “CN”
    }

  • {
    “createdAt”: 1782549029001,
    “messageId”: “6a3f8a251020fba44e8b4f5a”,
    “replyToMessageId”: “6a3f8a251020fba44e8b4f58”,
    “sessionId”: “6a3f8a251020fba44e8b4f57”,
    “deviceid”: “4346847850145722”,
    “userId”: “4386376571432256”,
    “location”: “CN”
    }

  • {
    “createdAt”: 1782538852001,
    “messageId”: “6a3f62641020fba44e8b4b0e”,
    “replyToMessageId”: “6a3f62641020fba44e8b4b0c”,
    “sessionId”: “6a3f3e23a730e9d74177ee19”,
    “deviceid”: “4346847850145722”,
    “userId”: “4386376571432256”,
    “location”: “CN”
    }

  • {
    “createdAt”: 1781956999001,
    “messageId”: “6a3681873becd17e7c09b102”,
    “replyToMessageId”: “6a3681873becd17e7c09b100”,
    “sessionId”: “6a367cd73becd17e7c09b03a”,
    “deviceid”: “4346847850145722”,
    “userId”: “4386376571432256”,
    “location”: “CN”
    }

  • {
    “createdAt”: 1781954594001,
    “messageId”: “6a3678223becd17e7c09b013”,
    “replyToMessageId”: “6a3678223becd17e7c09b011”,
    “sessionId”: “6a3669d33becd17e7c09ae7b”,
    “deviceid”: “4346847850145722”,
    “userId”: “4386376571432256”,
    “location”: “CN”
    }

5. 对应的报名审核通过的帖子链接

Session ID 在哪找? Session ID 是 TRAE 每段对话任务的唯一标识,用来证明作品确实由 TRAE 开发完成。请在创作时保留关键任务的对话记录,发帖时附上对应 Session ID——双击 TRAE 的对话复制出来即可。(如下图)

1 个赞


这样,你有一票了,


图没有,删干净?

给大神点赞。方便也投我一票【学习工作】文档脱敏与还原系统 管理

2 个赞

谢谢,第五项我没有删除,以为是需要一起附带交上去的

1 个赞

哦,原来如此

不用客气,大佬要不要也支持我一票 :rofl:?如果不方便的话也没有关系,我依旧支持大佬 :saluting_face: