发布2026-04-026 分钟
校验关卡 v1:我们如何停止发送错误原子
cheemly 每条化学回答都要经过的四步验证链背后。我们为何选择 RDKit、OPSIN 与 Semantic Scholar。
什么是校验关卡?
校验关卡(Critic Gate)是一个确定性的验证层,它在每条 Cheemly 回答展示给用户之前对其进行检查。与起草回答的语言模型不同,这道关卡不运行任何 AI——它是朴素、可审计的代码,要么放行一个结果,要么将其退回重写。它的职责是让幻觉结构与编造的引文根本不可能被发送出去。
为何要设置一道独立的关卡
大语言模型很流畅,但在精确事实上并不可靠:它们会编造看似合理的 SMILES,并引用根本不存在的论文。您无法通过让模型「小心一点」来修复这一问题。唯一持久的解决办法,是用没有取悦动机的软件,将输出与基准事实加以验证。这种分离——一个流畅的撰写者加上一个严格的检查者——正是 Cheemly 设计的核心。
四项检查
- SMILES 有效性:RDKit 解析每一个结构。若无法解析,便不予发送。
- 原子守恒:对任何反应而言,反应物原子必须等于产物原子。一个丢失或凭空产生原子的反应将被拒绝。
- 名称往返:OPSIN 将 IUPAC 名称转换为结构再转换回来;一旦不匹配,即标记为命名错误。
- 引文存在性:每个 DOI 都会对照 Semantic Scholar 进行核查。无法验证的论文将被移除。
检查失败时会发生什么
一项检查失败并不会向用户产生一条错误消息。相反,该回答会被退回给撰写者,并将具体的失败原因作为反馈——必要时,还会升级到更强的模型。在有限次数的重试之后,任何仍然失败的内容都会带着「低置信度」标识呈现,而不会作为事实展示。用户绝不会在不知情的情况下收到一个错误的结构。
为何这才是护城河
原子守恒是一条自然法则,而非一种风格偏好。将它编码为一道硬性关卡,意味着 Cheemly 的底线由化学决定,而非由模型听起来有多自信决定。这正是一款化学工具与一个谈论化学的聊天机器人之间的区别。
常见问题
- 校验关卡使用 AI 吗?
- 不。校验关卡是确定性代码——RDKit 解析、原子平衡运算、OPSIN 往返和引文查询。它没有语言模型、没有随机性,因此其裁决可复现、可审计。
- 当一条回答未通过校验关卡时会发生什么?
- 该回答会被退回给撰写者,并将具体的失败原因作为反馈,可能还会升级到更强的模型。在有限次数的重试之后,任何仍然失败的内容都会带着「低置信度」标识展示,而不会作为事实呈现。
- 为什么 ChatGPT 不能直接做到这一点?
- 通用大语言模型以概率方式生成化学内容,且没有内置的基准事实检查,因此它们会发送看似合理却错误的结构与引文。确定性的验证关卡是一种架构选择,而非一句您可以加上去的提示词。