加水量预测 · Skill
定位(AI 必读)
本 skill 固化「文献导出 → 计算模型 → 可复用工具」的闭环。学员给文献导出(或课题方向),AI 产出三件套,系数全部锚定文献、可复算。
- 学员:给 CNKI/PubMed 导出 txt,或说"预测中药加水量"
- AI:读文献 → 抽加水量证据 → 建双模型 → 生成 HTML/Python/Excel
- 目标:输入饮片重量即自动输出加水量,日常代煎可直接复用
触发场景
- "预测中药加水量""建立加水量计算模型""输入饮片重量自动算加水量"
- 提供
CNKI-*.txt/abstract-*.txt等导出,要求拆解加水量模型 - 关联方向:煎煮工艺参数对中药代煎质量的影响(加水量/吸水率/料液比)
核心方法
Step 1 · 文献证据提取(从导出 txt 抽数)
- PubMed 导出(如
abstract-DrugsChine-set.txt):直接读全文,找含water addition/N-fold/tenfold/X-fold amount of water/volume of water的段落,记录倍量值与工艺(次数、时间)。 - CNKI 导出(常 >0.5MB 单行长摘要):用 Grep 先按
加水量|吸水率|加水倍量|料液比|浸泡用水量定位,再用 Python 按句切分提取<200字的关键句(见下"代码骨架"),抽X倍 / 料液比1:X / 加水N倍量数值。 - 证据表必须沉淀:来源、方/药、加水倍量、工艺备注。典型文献值(已验证):
- 常规饮片水煎 6–10 倍(Yihuang 8倍、苁蓉舒精 6倍、肝癌方 10倍/tenfold、肺炎汤 10倍)
- 花叶/全草吸水强 15–20 倍(金银花 15、板蓝根 20)
- 煮散碎粒 12–18 倍(当归 13、党参 13、甘草 15、麻黄等 18)
- 二煎经验:首煎 10 倍 / 二煎 6 倍(CNKI L635)
Step 2 · 构建三模型(目标成品导向为主,原两模型作辅助/对照)
模型三 · 目标成品液导向加水量(主模型,v1.1 新增)
以「代煎成品满足用药量」为结局:每日两次、每次 200 mL → 单副成品 V_dose = 200×2 = 400 mL。
反向求解最小总加水量,使煎后定容/分装到目标体积:
V_dose = 每次用量 × 每日次数 # 单副目标成品 = 400 mL
V_total = V_dose × 疗程天数
W_abs = Σ( W_i × 吸水率_i% ) # 饮片吸水(按类别)
E = 蒸发速率 × (先煎+首煎+二煎 总时长)/60
S = W_abs × β # 药渣夹带综合系数(β=1.3)
Q_min(单副) = V_dose + W_abs + E + S # 单副最小总加水量(保证成品达标下限)
Q_min(总) = V_total + W_abs×n + E×n + S×n
分配(单副):先煎药设最低水位 = MAX(ΣW_pre×8, W_abs_pre×β);其余按 首煎:二煎 = 时长比 补足。
默认 蒸发速率 敞口 100 / 密闭 40 mL/h;先煎 30、首煎 30、二煎 20 min;β=1.3。
该模型直接服务于代煎业务「每次 200 mL 服药量」,取代原倍量法的盲目加水。
模型一 · 加水倍量法(工艺研究·辅助)
加水量(mL) = 饮片重量(g) × N
二煎倍量 = MAX(4, ROUND(N × 0.6)) # 锚定 CNKI「首煎10/二煎6」
N 按饮片类别取文献中值(见系数表)。该模型证据最充分、最易复用,作工艺参数研究视角。
模型二 · 吸水率法(物理基准,交叉校验)
首煎 = W × 吸水率% + 蒸发速率×(首煎min/60) + W × 目标煎液系数
二煎 = 蒸发速率×(二煎min/60) + W × 目标煎液系数
默认 蒸发速率 100 mL/h、首煎 60 min、二煎 40 min、目标煎液系数 2.5。
结果通常偏下限,作校验;煮散类以加水倍量法为准。
Step 3 · 生成三件套(单一事实来源,共用一套系数)
| 文件 | 用途 | 关键 |
|---|---|---|
中药加水量计算模型.html |
交互式计算器(离线) | 目标成品导向(主):录入处方+分装规格(每次200mL×每日2次×疗程)→出单副/总加水量+分装袋数;另含单味/处方合计/文献证据/模型说明 页签 |
water_amount_model.py |
可复用模块 + CLI | water_target(rx,...) / water_nfold(w,key,mode) / water_absorb(...) 直接 import |
中药加水量计算表.xlsx |
处方录入模板 | 类别参数工作表 + 处方计算(含先煎标记) + 目标成品导向工作表(自动算Q_min与分装) |
系数表(写入所有三件套,必须一致)
| 类别key | 名称 | N(默认) | 倍量范围 | 吸水率% |
|---|---|---|---|---|
| 花叶全草 | 花叶/全草类(质地疏松、吸水强) | 12 | 10–15 | 250 |
| 根茎藤木 | 根茎/藤木类 | 10 | 8–12 | 150 |
| 果实种子 | 果实/种子类 | 10 | 8–12 | 120 |
| 皮树脂 | 皮/树脂类 | 10 | 8–12 | 140 |
| 矿物贝壳 | 矿物/贝壳/金石类(多先煎) | 8 | 6–10 | 50 |
| 动物角甲 | 动物/角甲类(多先煎) | 8 | 6–10 | 90 |
| 煮散 | 煮散(粉碎颗粒) | 14 | 12–18 | 200 |
| 通用 | 通用/不明 | 10 | 8–12 | 150 |
代码骨架(CNKI 长行提取)
import re
kw = re.compile('加水量|吸水率|加水倍量|料液比|浸泡用水量')
with open(path, encoding='utf-8', errors='ignore') as f:
for line in f:
if not kw.search(line): continue
for s in re.split(r'(?<=[。;;])', line):
if kw.search(s) and len(s) < 200:
print(s.strip()) # 抽关键句
完整生成器
references/build_water_model.py 是已验证的可移植生成器:
python build_water_model.py [输出目录] # 缺省输出到当前目录
它内置上述系数表与双模型函数,一次产出 HTML/Python/Excel 三件套,并跑自检。
改系数后重跑即可,保证三件套一致。
注意事项(AI 输出前自检)
- [ ] 系数表是否三件套一致?(改一处须重跑生成器)
- [ ] 目标成品导向是否为默认主模型?(每次200mL×每日2次=400mL/副)
- [ ] 目标导向 Q_min 公式是否 = V_dose + 饮片吸水 + 蒸发 + 药渣夹带?
- [ ] 先煎药是否设最低水位 MAX(ΣW_pre×8, W_abs_pre×β)?
- [ ] N 取值是否有文献出处?(常规 6–10、花叶 15–20、煮散 12–18)
- [ ] 二煎倍量是否用 MAX(4,ROUND(N×0.6))?
- [ ] 吸水率法是否标注"下限校验、煮散以倍量法为准"?
- [ ] HTML 是否离线可用(无外部依赖/CDN)?
- [ ] 是否附文献证据表(来源/方/倍量/工艺)?
版本
| 版本 | 日期 | 说明 |
|---|---|---|
| v1.0.0 | 2026-08-16 | 由「中药加水量」检索+建模任务沉淀;CNKI+PubMed 双库证据、双模型、三件套 |
| v1.1.0 | 2026-08-16 | 新增模型三·目标成品液导向加水量为主模型(代煎成品满足每日两次×200mL);保留倍量法/吸水率法作辅助;三件套加入分装规格与先煎标记 |