药品查询(本地药品说明书库)
用户问「XX 是什么药 / 有什么副作用 / 有什么禁忌 / 和我吃的药冲不冲」时用本技能。
数据位置
- 库:
〈药品库目录〉/drugs.sqlite(数据需自备,本仓库不附带任何药品数据 —— 原因见仓库根 README「关于药品数据」一节) - 脚本:
〈药品库目录〉/q.py;重跑建库:python3 〈药品库目录〉/build.py - 原始 JSON(建库输入):
〈药品原始数据目录〉/ - ⚠️ 许可:公开可得的整理集多有版权问题(例如从药典类网站爬取的整理)→ 仅本机个人参考,不得再分发;授权来源(RxNorm / RxNav、openFDA)见仓库
vault-template/8-知识库/用药指南/索引.md
查询命令
python3 〈药品库目录〉/q.py 布洛芬 # 命中概况:剂型清单 + 成分/适应症/禁忌/不良反应/相互作用摘要
python3 〈药品库目录〉/q.py --full 布洛芬 # 不截断(只在需要原文时用)
python3 〈药品库目录〉/q.py --field 禁忌 布洛芬 # 只看一个字段:适应症|禁忌|不良反应|相互作用|成分|用法
python3 〈药品库目录〉/q.py -n 左甲状腺素 # 只要规范名 + 成分 + 剂型清单
python3 〈药品库目录〉/q.py -i 阿司匹林 华法林 # 两药相互作用
python3 〈药品库目录〉/q.py -s 头痛 --limit 5 # 全文搜索(名称/成分/适应症/不良反应)
输出纪律(重要,省 token)
- 默认输出已截断(每条字段 ~420 字);不要把库文件读进上下文,永远走查询脚本
- 只把用户问的那几条报给用户;需要原文时再加
--full或--field - 库里名字是剂型级(
布洛芬缓释胶囊)→ 回答时归一到通用名(布洛芬) - 相互作用查不到两药直配时,脚本会自动分别列出两药的相关提示 —— 要说明“这不是两药直配记录”
药名归一(与 health-vault 一致)
- 档案里写
通用名(剂型),如布洛芬(缓释胶囊);剂量用户补充才记,不猜 - 用户报商品名(优甲乐 / 芬必得 / 络活喜):先查库 → 找到对应通用名 → 回问用户确认 → 再落库;查不到就问“药盒上写的名称是什么”
- 新药/库中没有的药:告知“库里没有”,请用户拍药盒或读药名,不要编
硬边界
- ❌ 不答“我该不该吃 / 要不要停 / 换什么药 / 这个症状是不是这药引起的” → 让用户问医生或药师
- ❌ 不对相互作用做临床判断,只照录说明书原文 + 风险等级 + 来源
- ✅ 每次输出末尾提醒:“以上为说明书原文摘录,用药请遵医嘱/咨询药师”。