交接 · 中医知识库「结构优先」改造 · 新对话从这里开始

新对话第一件事:读本文件。它把任务目标、硬规则、当前状态、可复用脚本、开工步骤、待办全部收在一起,不需要再读前面 5 份旧交接(2026-10-02 13:48 / 14:08 / 14:24 / 15:10 / 16:53 那几份,作为历史留档即可)。 数字均为本机实测,时间:2026-10-02 晚。

一、任务目标(一句话)

把 46 本中医 EPUB 从原件按「结构优先」重新分块,建进一个库;要求原文完整、出处可追溯、图片与脚注不丢,检索时能一次命中「一条」而不是半条或几千字一大块。

总原则(用户已多次确认)

  1. 原文完整、可溯源 > 分块与检索效果
  2. 不覆盖旧库、不删原文件、不改插件(要改先问)
  3. 按书族分类处理,不把一本书的规则机械套到所有书
  4. 分批建库、逐本验收;每族首本做完即交付人工/外部复核
  5. 图片(含字形图)与脚注必须从 EPUB 保回来

二、三条硬规则(本任务最容易踩的坑,务必遵守)

  1. 判定「条目起首」只按白名单,白名单外一律不拆分。

理由:「穴名/脉名/病证名 + 别名 + 空格」的正则会命中针法口诀、手法连续论述的句首(形似穴名起首、实为同一段连续论述)。实测:《针灸大成》「一片内含 ≥2 穴条起首」= 0 例;《脈經校注》「以注释开头的片」= 0 例。此条是给古籍点校本预置的防误判约束。

  1. 逐字无损判据用「12 字滑窗全覆盖」,不要用顺序拼接或元素多重集。

理由:源 EPUB 的目录常是嵌套 div(同级内容被 level-1、level-2 各包一次),顺序/多重集判据必误报缺字。《针灸大成》目录 522 个嵌套元素实测触发过 1 处假缺口,查实是被父元素完整包含。 做法:把源 XHTML 每个元素的文本按 12 字滑窗,检查每个窗口是否出现在库内文本中;顺序无关,缺口 0 才算过。比对时先去掉 〔源:…〕 标记(标记夹在两片之间会把原文断口误报成缺口)。

  1. 必须按「每篇文档自身」的字符预算再收口一次。

理由:插件按整篇文档算 charsPerToken,各篇预算不同(实测 1296–3015)。不收口会被 windowBlock 带重叠切开 → 内容重复、不再逐字无损。

其他技术约束


三、当前状态(2026-10-02 晚)

项值
主库中医·结构优先 = 8bf27782-5f61-49c8-8d9a-af2b89158239(由「经络腧穴学·结构优先」改名,库 id 未变)
主库体量文档 461(含 8 个目录条目);453 篇正文 / 4006 块 / 133.9 万字符
检索启用范围开关值 enabled=True, enabledBaseIds=[8bf27782](但见第六节:此开关检索时不生效)
库级配置仅 siblingChunks=0,其余继承全局(未动)
全局配置(未动)嵌入 Qwen/Qwen3-Embedding-4B(2560d)、重排 Qwen/Qwen3-Reranker-8B、chunkSize 800、chunkOverlap 100、smartChunk=true、topK=4
原 EPUB10 个,位于 C:\Users\xy192\DSH云端备份\4-原始底本\epubtest\00-原始EPUB\ —— 全部未动
旧库「中医」c16b54af-…(47 文档)、「中医新」8c95794f-…(6535 块)—— 保留、停用、未改
临时验收库_tmp-素问语译-结构C(eff1d602,83 篇)、_tmp-针灸大成-结构C(5cde9779,233 篇)、_tmp-脈經校注-结构C(488695c9,105 篇)—— 保留备查
库总数13 个(含 6 个可清理的 _tmp-*:五章 3 个、第三章策略 2 个、空壳 _tmp-针灸大成-结构C 73de11d4、中间态 _tmp-脈經校注-结构C acbabe9b)

主库目录结构(4 个类 + 4 个书目录)

目录篇数块数字符处理记录
教材讲义类 / 经络腧穴学29676297,000无(第 1 本原型,验收在 新库抽查单-经络腧穴学-20261002.md)
医经语译类 / 黄帝内经素问语译84963386,200有(《素问语译》验收报告 + 修订记录)
针灸专著类 / 针灸大成2341,607378,648有(含书目信息、卷次决定、误报说明)
医经校注类 / 脈經校注106760276,841有
目录 id 全部记在 工作区\_tmp\main_reorg.json。

四、已完成 4 本(=旧库 47 本里的 4 本)

书书族篇/片核验
经络腧穴学教材讲义类(首本原型)29 篇 / 676 块逐篇块数一致、逐字无损、676/676 出处可回解
黄帝内经素问语译医经语译类(首本)83 篇正文 / 931 片84/84 篇块数一致;12 字滑窗 0 缺口;931/931 出处;558/558 图片;【注解】771、【语译】864
针灸大成针灸专著类(首本)233 篇正文 / 1573 片232/233 篇块数一致(唯一差异=书目篇多 1 块=插件注入的标题上下文);0 缺口;1859/1859 出处;考正穴法穴条 359/359 逐经吻合
脈經校注医经校注类(首本)105 篇正文 / 743 片105/105 篇块数一致;0 缺口;2557/2557 出处;图片 155/155

检索实测(显式限定 baseId=主库,TopK=4,均单块精确命中):中府 定位(经络腧穴学,339 字符完整条目)、上古天真论 女子七岁(451 字符,原文+注解+语译同块)、考正穴法 中府(针灸大成,192 字符)、标幽赋 注解(195 字符)、浮脈 舉之有餘(脈經校注,371 字符;旧 md 版是 1294 字一大块)、寸口脈浮 中風 發熱(341 字符)。


五、按同一套路做下一本书:5 步

  1. 查边界:读 _tmp\five\boundaries_fixed.json(38 本合集内图书的页码表,格式 start/end/cip;start = CIP 页 −2,含本书封面/内封)。
  2. 探体例:仿 _tmp\gen_mj.py 头部写一个 probe,打印「每页首元素 + 元素类分布 + 标题层级计数」,据此定文档层级(卷/篇/门)与单元规则(一条=什么)。遇到新体例先给用户确认再铺开。
  3. 写生成器:复制同族模板改三处——EPUB 路径、P0,P1 页范围、BOOK 名,再改单元组装与 BIB_PAGES(书目信息页)。
  4. 跑核验:verify_xx.py 导入临时库 _tmp-<书名>-结构C,看四项:逐篇块数一致、逐篇无损、12 字滑窗 0 缺口、出处全可回解。
  5. 入库 + 留档:用 _tmp\import_book_main.py(改 CONF 段)导入主库对应书目录,再写「处理记录」与「抽查单」,并把处理记录也作为文档放进该书目录。

三族模板现成可用

书族生成器单元规则
医经语译类_tmp\gen_suwen.py一条 = 原文段 +【注解】+注文 +【语译】+译文;篇 = 文档
针灸专著类_tmp\gen_jd.py四模式自适应(歌赋注解/短行打包/长段/考正穴法穴条);一穴一条;相邻短条 ≤400 字打包
医经校注类_tmp\gen_mj.py一条 = 原文段 + 紧随其后的注释段(注释段以〔N〕开头,遇新原文/标题收束);篇标题+提要+按语同片;相邻短条打包

剩余 42 本:医经校注类剩 4 本(鍼灸甲乙經校注上下、難經校注、傷寒論校注、中藏經校注)、医经语译类 2 本(灵枢经、伤寒论语译)、针灸专著类 2 本(针灸甲乙经、单玉堂针灸配穴通俗讲话)、教材讲义类 5 本(刺法灸法学、中药学 OCR、针灸治疗学、方剂学讲稿、中药学讲稿等)、方书类 6 本(千金翼方、备急千金要方、局方、证治准绳六部)、其余「较粗」的书 —— 这批要连图片、脚注、字形图一起从 EPUB 重做。 书单与分类:_tmp\five\worklist.json、md_classified.json。


六、⚠ 必须知道的两个环境事实

1. 检索开关的「启用范围」实际不生效

GET /knowledge/knowledge-toggle 的 enabledBaseIds 只被存取、供面板显示;检索链路 search() / searchSingle() 只认请求里的 baseId / baseIds,从不读 getEnabledBaseIds()。

2. 发布直链的方法(用户要链接时用)


七、待办(按优先级)

  1. 等外部复核《脈經校注》抽查单 34 条 → 工作区\抽查单-脈經校注-20261002.md(已发布直链 https://kb-xy919.pages.dev/dl/kb-spotcheck-mj-20261002.md)
  2. 定第六节第 1 条的处置(检索范围/临时库清理)
  3. 按第五节 5 步流程继续批处理剩余 42 本(每族首本做完即交付复核)
  4. 字形图提字单独立项:全 10 个 EPUB 共 13588 张字形图 / 约 1.36 万字,旧 md 里全是 〔缺字〕;建议先做 1 本验证准确率,机器输出标「机器识别/待核」,不直接当权威正文
  5. 历史遗留:凭据轮换(GET /knowledge/config 与 /knowledge/bases 明文返回 key 且本机接口无鉴权)、parseEpub 不读 spine 的上游 issue、清理 6 个废弃 _tmp-* 库

八、本轮成果文件(工作区根目录)

文件说明
知识库结构优先-本轮总结-20261002.md本轮进度与成果总结(可转外部评审)
处理记录-针灸大成-20261002.md含书目信息页处理、卷次决定表、连续起首不拆分
处理记录-脈經校注-20261002.md医经校注类模板 + 核验数据
验收报告-素问语译-20261002.md含第五节修订记录(书目信息篇、12 字滑窗判据)
抽查单-脈經校注-20261002.md34 条待复核
抽查单-素问语译-20261002.md / 抽查单-针灸大成-20261002.md已通过复核
静态发布说明.md直链台账与部署方法

脚本(工作区\_tmp\,权威清单)

本文件不含任何 API key 或凭据。