1. 合同、技术文档和源代码应如何按结构、语义与代码边界分块,并保留可定位元数据
合同、技术文档和源代码等不同文档类型应如何按结构、语义与代码边界分块?如何保留可定位的元数据?
- 按文档类型选择分块策略(结构分块、语义分块、代码边界分块)
- 分块与检索粒度的匹配(父子分块)
- 可定位元数据(页码、章节、代码位置)的保留
分块策略必须与文档类型匹配。合同类:按条款结构分块(第几条、第几款),保留条款编号与页眉页脚信息,分块边界必须落在条款边界上,避免把两个独立条款拼进一块;可配合"条款级块 + 合同级摘要"的两级结构。技术文档:按标题层级(章节)分块,保留 heading 路径作为元数据(如"3.2 部署 → 3.2.1 环境要求"),表格与代码示例单独成块或作为块的子结构保留。源代码:按代码边界分块——函数、类、方法为自然单元,块内保留文件路径、函数签名、语言与起始行号,注释与代码同块保证上下文完整;对超长函数用语义子块并保留父块指针。可定位元数据统一记录:doc_id、块序号、来源 URL、原文位置(PDF 页码与坐标、Word 段落号、代码文件行号区间、章节路径),这些元数据直接支撑答案引用跳转与"块级溯源"。分块后还要校验:块是否完整(不切碎语义单元)、块大小分布是否健康、重复块占比是否可控。
分块不是"按固定 token 一刀切",而是"结构优先、语义兜底":合同按条款、文档按章节、代码按函数,本质是把文档的天然语义单元当作块边界。答题要同时给出三类文档的具体策略与可定位元数据的清单,体现对"块即证据、块可溯源"的理解。