【标签】 按所选赛道选择话题标签:生活娱乐/学习工作/社会服务/硬件交互,必须四选一;参加附加赛题的还可加选 社会公益 标签。(需要跟报名通过的赛道保持一致)
【标题】 【社会服务+社会公益赛道】药安心:多模态离线弱网用药安全智能
(示例:【生活娱乐赛道】+XXXX
【正文】 至少包含以下 4 个部分,可以增加额外的部分(比如自我介绍、经验总结、踩坑复盘等)
0. 先和大家打个招呼吧 ![]()
-
你是谁:大一计科学生
-
**你是怎么用 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 种药物,面临多药联用冲突风险、服药遗忘、体检报告看不懂三大痛点。
-
主要功能:主要功能:
-
拍照识药 + 冲突检测:用户用手机摄像头拍摄药盒,百度 OCR 提取批准文号和药品名称,通过六层评分匹配策略(批准文号精确匹配 → 通用名精确匹配 → 商品名精确匹配 → LIKE 模糊匹配 → 反向 LIKE 匹配 → 数字部分回退)在 3701 种药品数据库中定位。选中的药品两两组合查询 drug_interactions 表,输出严重/中度/轻度三级风险报告(含机制说明和用药建议),同时检测同类重复用药和禁忌交叉验证。
-
语音问诊(三层多跳推理):用户用自然语言描述不适症状,faster-whisper 本地语音识别转文字,后端通过三层推理引擎分析:第一层 96 个症状关键词直接匹配疾病;第二层在 14 个节点的疾病关系图上 BFS 宽度优先搜索(最大 3 跳,置信度衰减因子 0.75),推导并发症和间接风险;第三层将推导疾病与当前用药做禁忌交叉验证。返回因果链 + 鉴别诊断 + 分级行动建议。
-
体检报告解读 + 用药管理:拍照上传血常规/生化报告单,OCR 提取检验指标,与 lab_reference_ranges 表对比标注正常/警告/危险三级,Ollama AI 生成白话解读。配套服药记录管理、按星期设置的用药提醒、首页今日提醒汇总。
-
2. Demo 创作思路
-
灵感来源:我的奶奶今年 80+ 岁,居住在农村,患有高血压、糖尿病和冠心病,每天需要服用四种药物。有一次她感冒了,自己去药店买了布洛芬吃,结果胃出血住院,因为两种药物连用是有风险的,而药店的店员和她自己都不知道这个风险。
而且她经常忘记吃药,或者重复吃药,早上吃了降压药,中午不记得又吃了一片,导致血压过低头晕摔倒。体检报告拿回来也看不懂,她完全不知道是什么意思,也不清楚该不该告诉医生调整用药。
为了解决她的困难,以及想要对自己掌握的信息和内容制作成一个可以使用的软件,接触到了Trae
-
想解决的问题:我国 60 岁以上老年人中,超过 75% 患有至少一种慢性病,平均同时服用 4-6 种药物。存在三个核心问题:
-
药物相互作用风险隐蔽:多种药物联用可能产生协同毒性或相互拮抗,但老年人和家属缺乏便捷的检测手段。例如,阿司匹林与布洛芬联用会使消化道出血风险提升 3-5 倍,但多数人并不知情。
-
多科室处方缺乏统一管理:老年人常在不同医院、不同科室就诊,各科室开具的处方之间缺乏交叉审核,药物"打架"时有发生。
-
症状描述与疾病关联判断困难:老年人出现头晕、乏力、脚肿等症状时,难以判断是药物副作用、原有疾病进展,还是新发疾病,往往延误就诊。
-
-
为什么做这个方向:需求真实
-
中国 2.6 亿 60 岁以上人口,1.8 亿患有慢性病,每年因药物不良反应住院的老年人超过 250 万例
-
这些不良反应中,约 30% 是可以通过药物相互作用筛查提前预防的
-
现有的药物查询工具(如丁香园用药助手)面向医生,操作复杂,老年人不会用
方案可行
-
手机拍照 + OCR 识别药盒,零学习成本
-
本地 AI 模型(Ollama)保障隐私,无需联网上传数据
-
中文语音输入适配老年人操作习惯,解决打字困难
-
技术栈轻量(Python + SQLite + 单文件前端),部署成本近乎为零
社会价值
-
降低老年人因药物相互作用导致的住院率和死亡率
-
减轻家庭照护负担,减少"一人住院、全家奔忙"的局面
-
推动 AI 技术从"炫技"走向"普惠",让技术真正服务于弱势群体
-
3. Demo 体验地址(三选一)
-
yaoanxin-提交版.zip (460.2 KB)
-
因云端服务器不稳定,完整版的体验内容暂时还没办法做到上线部署(包含本地的大模型等内容)https://www.bilibili.com/video/BV13KMt6HEz5/?spm_id_from=333.1387.list.card_archive.click&vd_source=a0f9ef573da5ec92244f2384863d0a15 该链接则展示了有关图片识别 语音识别 病理分析的内容
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 的对话复制出来即可。(如下图)




















