← 返回文章列表

教材引用不能停在 RAG 命中:从章节治理到原文回跳

TeachFlow 如何把教材、章节、原始 PDF、审核关系和课程发布快照连接成可追溯的教学依据。

返回 TeachFlow 项目总览

“模型参考了教材”不是一个足够严格的产品声明。教师真正需要知道:参考的是哪本书、哪个章节、哪一页、哪段原文;课程发布后,这份依据是否会随着知识库重建而漂移;学生能否回到当时使用的材料,而不是今天最新的检索结果。

TeachFlow 把教材分成浏览、治理与发布依据三个层次。

课程生成前展示教学班、教材章节与年级冲突

浏览不等于治理

教材中心负责书籍、章节和授权文件的访问;知识关系审核负责“这一章节支持哪个知识点”的决定。学生可以阅读已公开教材,但不能看到教师治理草稿。上传文件也不会自动获得可信知识关系。

课程生成时,浏览器只提交教材和章节 ID。服务端重新读取班级、学科、年级、章节和当前图版本;不一致会被拒绝或明确提示。召回结果区分 groundedno-matchunavailable,服务故障不能伪装成已有依据。

发布冻结的是依据快照

课程发布前同时复核课程 revision、图版本与教材依据

教师发布课程时,课程 revision、知识图版本、场景关系和教材依据一起进入发布事实。学生以后查看的是这次发布携带的来源,而不是重新运行一次 RAG。这样,知识库更新不会改变历史课程“当时依据了什么”。

教材引用还保留页码、摘录与定位层级。文本层达到匹配门槛时可以高亮原文;只有页级证据时就明确停在页级,不伪造段落精确性。PDF 通过带身份的 Range 请求读取,引用失败也应显式呈现。

为什么不只保存一段检索文本

复制检索片段会失去文件版本、页码和访问控制;只保存向量库文档 ID,又无法保证索引重建后仍指向同一内容。TeachFlow 保存稳定教材、章节和来源锚点,把检索当作候选发现,把审核与发布快照当作业务事实。

三种召回状态必须真的不同

grounded 表示在当前授权教材与章节范围内找到了可展示来源;no-match 表示服务正常,但没有达到引用门槛;unavailable 表示 Provider、索引或网络不可用。把后两者都返回空数组,会让页面无法判断“教材里没有”还是“系统今天查不到”,教师也就无法决定继续编写、改选章节还是稍后重试。

这一区分还影响课程历史。假设课程在 8 月 1 日发布,引用教材第 42 页;8 月 10 日知识库重新切片或关系审核发生变化。学生回看 8 月 1 日课程时,应读取发布快照中的教材、章节、页码和来源状态,而不是用 8 月 10 日的检索结果改写历史依据。最新治理状态可以提示风险,但不能匿名替换当时事实。

设计取舍:为什么 PostgreSQL 还要保存引用,向量库不是已有来源吗

向量库优化的是召回,不拥有课程发布、班级授权和审核决定。业务数据库保存稳定实体、版本和发布引用,外部知识库负责解析与候选召回;两者通过可验证 ID 和来源锚点连接。这样即使索引不可用,历史课程仍能解释自己依赖了什么。

当前定位精度到页,OCR 文本可能与 PDF 视觉层不一致,因此核对引用时仍需查看原页。截图展示了这些状态;教材用于生产前,还需核实版权与使用授权。

当前边界

源码与本地截图支持上下文复核和发布依据设计,历史 Golden 回归记录过 PDF 页回跳。本轮没有重新执行真实知识库召回、PDF Range 和跨版本重建,因此为 partial。授权教材扩容、生产对象存储、OCR 文本层质量和版权治理仍需独立处理。

结论

可信教材能力不是“接了 RAG”,而是让引用能回到具体来源、让审核决定有版本、让发布历史不随索引漂移。只有这样,教材才是教学依据,而不是模型提示词里的临时文本。

← 返回文章列表