Project NOMAD按症状找药从烧伤、发热到腹泻的OTC匹配完全指南【免费下载链接】project-nomadProject NOMAD is an offline-first knowledge and education server. Wikipedia, thousands of books, courses, maps, and optional local AI, all running on hardware you own with no internet required.项目地址: https://gitcode.com/GitHub_Trending/pr/project-nomadProject NOMAD是一个离线优先的知识与教育服务器其中的药品参考Drug Reference模块支持按症状找药从烧伤、发热到腹泻它会根据 FDA 官方药品标签帮你匹配出对应的非处方药OTC。无需联网、无需搜索网站所有数据都跑在你自己的硬件上。本文带你走通从安装数据到按症状搜索的完整流程并拆解它背后的 OTC 匹配逻辑。为什么需要按症状找药平时我们在网上找药往往要先知道药名。但真实的场景常常相反你知道自己哪里不舒服却不知道该用什么药。Project NOMAD 的药品参考把这两个方向都做好了按药名搜索输入品牌名或通用名查看适应症、剂量、警告和成分。按症状搜索By situation从问题出发选择烧伤发热腹泻等症状列出 FDA 标签覆盖这些症状的药品。反向链接在药品详情页还能看到该药常用于哪些情况形成症状 ↔ 药品双向互链。官方文档中对此的原文描述是Start from the problem instead of the product从问题出发而不是从产品出发。详见 drug-reference.md。⚠️重要提示这是健康信息不是医疗建议。Project NOMAD 展示的是制造商的 FDA 标签原文和 OTC 匹配结果不能替代医生、药师或护士。请始终遵循你手中实际产品的说明。第一步安装 FDA 药品数据约需 8-10 GB药品参考是可选组件默认不安装因为数据集较大。有两种安装入口最终效果相同从主界面进入Content Explorer选择Medicine分类选中Standard层级其中包含 FDA Drug Reference确认下载。也可以在 Drug Reference 页面直接点Download FDA drug data按钮。整个过程分两个阶段在后台进行阶段内容大小⬇️ Download拉取 openFDA 药品标签数据集支持断点续传约 1.7 GB压缩 Indexing将标签导入离线全文搜索数据库解压后约 8-10 GB你不需要守在页面旁——离开后下载和索引会继续索引完成后搜索功能自动开启。开启自动内容更新后NOMAD 还会定期检查 openFDA 是否发布了新数据集并自动刷新。按症状搜索 OTC 药品的操作步骤数据装好后Drug Reference 页面有三个标签页其中By situation就是按症状找药的主入口在症状选择器中点选一个或多个症状如烧伤、发热、腹泻页面列出所有 FDA 标签覆盖该症状的药品并按相关度排序每个结果按品牌名 通用名折叠为一行避免同一成分出现几十个近似的商品结果中OTC 药品永远排在最前面方便直接购买使用。 多选症状时NOMAD 会优先查找同时覆盖所有症状的药品找不到再按每个症状分别展示——这在多种症状并存、想找一款产品搞定时特别实用。匹配逻辑拆解从burns到搜索结果按症状搜索的核心是一套精心策划的症状骨架condition spine其唯一数据源是 conditions.json构建时生成到 conditions.ts{ slug: burns, label: Burns, category: Skin wounds, searchTerms: [burns, minor burns, sunburn, scald, minor burn] }每个症状包含一组同义词searchTerms覆盖用户可能的各种表达。以烧伤为例burns、sunburn晒伤、scald烫伤都能命中同一组药品。内置症状按四大类别组织类别代表症状Pain, fever inflammation疼痛、发热与炎症头痛、肌肉关节痛、发热、痛经Cold, cough allergy感冒、咳嗽与过敏咳嗽、鼻塞、喉咙痛、过敏Stomach digestion胃与消化胃灼热、腹泻、便秘、恶心呕吐、晕车Skin wounds皮肤与伤口烧伤、擦伤割伤、蚊虫叮咬查询是如何构建的匹配逻辑实现在 condition_service.ts 中关键点同义词 OR 扩展buildIndicationQuery 把 searchTerms 拼成一条 MySQL 全文检索查询。多词短语如sore throat会被加双引号按短语匹配牺牲少量召回换取精度单词直接通过。NATURAL LANGUAGE MODE 把它们当作 OR 式相关度查询——任一同义词命中即可按相关度排序。全文检索 LIKE 兜底查询词中最长 token ≥ 3 个字符时走 FULLTEXT 索引ft_drug_labels_name_indications太短或索引异常时自动降级为LIKE %term%保证搜索永远可用。OTC 强过滤SQL 中固定product_type HUMAN OTC DRUG见 orderOtcFirst确保按症状浏览时只出现非处方药——这是面向消费者的场景处方药不该抢镜。自由文本不选症状直接输入描述如果症状列表里没有你想要的那一项可以直接输入自由文本如 athletes foot。处理逻辑在 drugsForFreeText主路径把输入解析回策划症状的 slug大小写不敏感的精确/子串匹配例如手输 burns 依然会命中策划条目走与点选完全相同的匹配兜底路径解析不到时对药品适应症文本做直接匹配。附加层天然疗法与自然补救每个症状页除了 OTC 药品还会尝试展示天然疗法草药 居家护理措施数据来自 natural_remedies.json 与 home_remedies.json来源为 NCCIH、CDC、FDA 等美国公共领域资料。比如选择burns时芦荟胶Aloe vera、茶树油Tea tree oil等条目会因conditions数组包含burns而被 remediesForCondition 精确过滤出来。需要注意的是这部分肯定性内容目前默认关闭由 affirmative_remedies.ts 的门控控制默认体验只包含受监管的 FDA 标签匹配——这也是它保持严谨的原因之一。反向链接与结果页结构药品详情页上还有一个常用于Commonly used for区块反向查找 situationsForIndications 会把药品标签的适应症文本与所有症状的 searchTerms 做子串匹配告诉你这款药还能应对哪些情况点一下即可跳转回症状页通过/drug-reference?situationslug深链。单个症状详情页conditions/show.tsx的呈现层次也很清晰顶部常驻安全横幅SafetyBanner不可绕过药品列表区区分还没装数据引导去 Drug Reference和有数据但无匹配两种空状态每条结果行DrugResultRow链接到完整标签详情可进一步并排对比两款药的警告章节。对比功能只做警告并排展示不计算药物相互作用——两种药能否同服请交给药师或医生。关键文件导航模块路径症状数据源conditions.json症状骨架生成文件admin/app/data/conditions.ts匹配服务层admin/app/services/condition_service.ts纯函数工具查询构建/排序admin/util/conditions.tsHTTP 路由层admin/app/controllers/conditions_controller.ts症状详情前端页admin/inertia/pages/conditions/show.tsx按症状搜索 UIadmin/inertia/pages/drug-reference/index.tsx官方使用文档admin/docs/drug-reference.md总结Project NOMAD 的按症状找药本质上是把症状 → 同义词 → FDA 标签适应症全文匹配串成一条离线流水线并用 OTC 强过滤和稳定排序保证结果对普通人友好。当你下一次在野外或断网环境下遇到烧伤、发热或腹泻时这套逻辑能让你在没有互联网的情况下依然拿到基于官方标签的可靠 OTC 参考——当然紧急情况请优先寻求专业医疗帮助。【免费下载链接】project-nomadProject NOMAD is an offline-first knowledge and education server. Wikipedia, thousands of books, courses, maps, and optional local AI, all running on hardware you own with no internet required.项目地址: https://gitcode.com/GitHub_Trending/pr/project-nomad创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考