化学结构课件助手

为药学 / 化学教师生成或修改含化学结构的教学网页与 PPT 课件——结构绝不靠 AI 画图,100% 走权威 SMILES + PubChem + OpenChemLib 确定性渲染,生成与校正两用。
确定性渲染 · 结构零错 · 生成 + 校正

1 · 核心目标

让 AI 在生成或修改含化学结构的教学材料(网页 HTML / PPT 课件)时,结构的化学正确性由确定性引擎 + PubChem 校验保证,而非 AI 凭空绘制。两条主线:

2 · 核心原则(铁律)

3 · 功能

① 理解需求
澄清主题/受众/化合物清单/输出形式,自动补全常见代表药。
② 生成网页
HTML+CSS+JS 骨架,OpenChemLib 浏览器内渲染矢量 SVG,含 CAS·CID 标注与失败报错。
③ 生成 PPT
化学结构先导成 SVG/EMF 矢量素材再嵌入,不内画。
④ 取权威结构
识别化合物,查库 / 回查 PubChem 取 SMILES/CID/CAS/InChIKey。
⑤ 校验 SMILES
抓手性漂移、盐型、互变异构、身份不一致。
⑥ 校正文档
按序把 <img> 替换为权威 SVG,并自动验证"零改动"。

4 · 工作流程

场景 A — 生成新材料(网页 / PPT)

① 理解需求→ ② 生成文档骨架(留结构占位)→ ③ 识别化合物 + 取权威 SMILES + OCL 渲染→ ④ validate_smiles 校验

场景 B — 校正已有文档(只换结构图)

① 数出需替换的 <img>→ ② 取权威 SMILES 用 OCL 渲染 SVG(按序命名 0_xxx.svg…)→ ③ replace_structures.py 按序替换 src→ ④ 自动校验"去 src 后两文件逐字节一致"

5 · 执行步骤(关键动作)

步骤动作工具 / 产物
取结构查 references/chem_library.json;没有则 build_library.py(给英文名)回查 PubChem 重建库scripts/build_library.py
渲染网页:OCL.Molecule.fromSmiles(smi).toSVG(400,300,id,OPTS);PPT:Node 端 mol.toSVG 批量导出 SVGOpenChemLib CDN
校验validate_smiles.py <csv 带 cid/inchikey 列> 做 CID/InChIKey 对照scripts/validate_smiles.py
替换(场景B)replace_structures.py --src 原.html --svg-dir 目录 --out 新.htmlscripts/replace_structures.py
关键 API 细节:toSVG(width, height, svgId, options) —— 第 3 参是 svg id(字符串),第 4 参才是渲染开关,错放第 3 参不生效。

6 · 输出格式

7 · 自带资源(随 skill 携带)

chem-structure-courseware/ ├─ SKILL.md # 总纲 ├─ 介绍.html # 本页 ├─ references/ │ ├─ chem_library.json / .csv # 31 化合物起始权威库 │ └─ openchemlib_webpage_template.html# 网页渲染模板 └─ scripts/ ├─ build_library.py # 扩库 ├─ validate_smiles.py # 校验 └─ replace_structures.py # 场景B 替换 + 零改动校验

换工作区时本 skill 自带全部脚本与起始库,无需从旧项目拷贝;扩充库用 build_library.py 在目标目录生成新 chem_library.json 即可。

8 · 触发词(自动激活)

生成类

"做个讲 X 的教学网页"、"生成 X 的 PPT 课件"、"课件里要有阿司匹林结构"、"把这几个药的结构放进去"。

校正类

"检查 / 修正 / 替换里面的化学结构"、"把 AI 生成的结构换成权威 SVG"、"里面的结构图不对,帮我改"。

9 · 校验重点(5 大教学陷阱)

① 手性:@ 丢失 → CID 漂移(布洛芬 114864→3672);CID 对照必抓。InChIKey 末位 N=含立体 / S=无 / U=未知。
② 盐型 / 混合物:SMILES 含 . 即多组分(青霉素钠/钾、阿莫西林克拉维酸钾)→ 确认临床盐型。
③ 互变异构:酮⇄烯醇,PubChem 只返一种,教学前定标准存库。
④ 质子化 / 芳香性:靠教学前定标准、存标准 SMILES,非自动可判。
⑤ CID 多登记 / 锚定:地高辛用 CAS 20830-75-5 锚定 CID 2724385;二甲双胍锁定双 CID 之一;CAS 取 RegistryID 首个常非主登记号需 override。