Skip to content

Latest commit

 

History

History
210 lines (159 loc) · 10.9 KB

File metadata and controls

210 lines (159 loc) · 10.9 KB

StruInfo 文档条目处理准则

1. 目标

StruInfo 接收以文档为主的异构资料,并把它们转换成可追溯、可修改、可关联和可搜索的 信息条目网络。 文档可以包含图片、视频和其他附件;媒体原件及来源关系必须保留。

核心流程为:

保存来源与不可变版本
  → 按结构生成信息条目
  → 为条目添加三类关键词
  → 聚合文档标签并建立双向查找
  → 生成选择性的关联边
  → 通过结构、文本和关系检索

PostgreSQL 保存规范关系数据,包体外 Blob 存储保存原始文档和媒体。 InformationEntry(下称 Entry)是从具体 Snapshot 生成的首要检索单元。 搜索索引、自动关联基础分和可选向量均是可重建派生数据;人工调整是独立的规范控制记录。

2. 来源与文档身份

  • Resource 表示一份来源文档的稳定身份;Snapshot 表示该文档的不可变版本。
  • 输入时至少记录来源、唯一标识、内容哈希、获取时间、可用的发布/修改时间、语言和媒体引用。
  • 来源更新产生新 Snapshot,不覆盖旧版本;重复输入必须幂等。
  • 原始字节、规范化正文和媒体存放在外部工作区数据根,不能进入 Git、安装包或测试样本。
  • 图片和视频保留内容哈希、来源、文档位置及用途;OCR、字幕和模型描述属于派生结果, 不能覆盖原件。

3. 第一步:生成信息条目

默认按标题层级和段落结构拆分文档,整体行为与确定性 Markdown 结构解析一致。 每个 Entry 必须保存:

  • 稳定身份、所属 Snapshot 和文档身份;
  • 原始顺序、标题路径及准确来源位置;
  • 正文、内容哈希及相关媒体位置;
  • 当前拆分版本以及与拆分、合并前条目的沿袭关系。

长期产品允许用户手工拆分、合并、调整边界或顺序,但每一步都不能修改原始 Snapshot。 M1E-4A/4B 的当前可运行子集只处理尚未生成 Entry 的 Snapshot:用户可在既有 section Fragment 边界合并连续分组,也可在只读正文中把光标放到任意 Unicode 标量边界后明确拆开。 全部区间必须保持来源顺序且恰好覆盖一次;服务端从不可变 Fragment 重建正文,并把精确半开 区间保存为可选输入子记录。来源重排和已物化 Entry 的结构重组仍需后续版本与沿袭边界, 当前实现不会用新结构覆盖已有标签、联系或查询身份。

文档具有两个相互独立、只能由用户选择的特殊字段:

  • chunk_mode = split | wholewhole 表示“不分块”,并生成一个全文 Entry;
  • visibility = normal | privateprivate 表示“隐私文档”,不自动决定是否拆分。

两种文档都继续使用统一的标注、入库和搜索流程;全文 Entry 不需要执行多条目聚合, 但仍保留文档关联和搜索投影。

4. 第二步:标注关键词组

每个 Entry 使用三个相互独立的关键词维度:

维度 数量 规则
内容关键词 1~N 个 从正文提取;数量按长度和语义覆盖度由版本化规则决定;不使用固定词表
类型关键词 恰好 1 个 从固定类型表选择
领域关键词 1~3 个 1 个主领域,必要时增加最多 2 个副领域

这三类关键词是产品定义的 Entry 标注维度,不替代既有的准入动作、知识类型、认知角色或 用户可扩展内容分类。

内容关键词保留原文写法、规范化形式和来源位置。 文档拆分、语言分词和关键词提取是三个独立步骤,不能混用状态或结果。

类型关键词为:

  • 纪实资料
  • 知识解释
  • 操作规范
  • 调查分析
  • 观点论证
  • 个人体验
  • 互动协作
  • 公共传播
  • 文学创作
  • 其他

领域关键词为:

  • 数理与形式系统
  • 自然与环境
  • 工程、计算与技术
  • 生命、医学与健康
  • 社会与公共事务
  • 经济、商业与组织
  • 法律、政策与治理
  • 人文、历史与思想
  • 语言、传播与教育
  • 文化、艺术与娱乐
  • 日常生活、个人与家庭
  • 其他

选择“其他”时必须填写自定义类名。 系统分别保存规范值 other 和工作区自定义显示名;类型与领域的自定义名称互不共用。 关联计算不得仅因两个条目的规范值都是 other 而判定它们相近,必须比较自定义名称或 其他内容特征。

每次关键词指派都记录操作来源、规则/模型版本和时间。 用户可以新增、删除或替换关键词;人工结果优先,后续规则或 AI 不得静默覆盖。

5. 第三步:聚合文档标签与元数据

文档标签主要由全文内容倾向决定,条目关键词的覆盖率和频率只作为附加参考。 聚合结果必须记录算法或规则版本,并允许人工修改。

文档与 Entry 通过规范外键双向查找,不在双方重复保存整套元数据:

  • Entry 可通过所属 Snapshot 读取来源、发布时间、修改时间和完整文档;
  • Document 可查询其全部 Entry、顺序、关键词分布和关联情况;
  • 为提高检索效率而展开的字段只进入可重建搜索投影。

全文 Entry 直接使用全文计算文档标签,不需要执行多条目频率汇总。

6. 第四步:建立关联网络

信息条目存入 PostgreSQL 后,系统先通过关键词索引和本地文本相似算法生成候选, 再计算选择性关联分数:

base_score =
  content_similarity * content_weight
  + type_similarity * type_weight
  + domain_similarity * domain_weight

effective_score = manual_override ?? (base_score + manual_adjustment)

权重、阈值、候选上限和算法均采用版本化策略。当前用户可修改内容、类型、领域权重和阈值;其修订保存在外部个人配置并随个人数据包往返。保存后只重建可替换的自动投影,不覆盖逐对人工控制或正式图谱关系。候选上限和人工调整幅度仍是固定算法常量。 只有超过阈值且位于候选上限内的条目才生成关联边,不建立同标签条目的全连接网络。 候选生成必须使用索引缩小范围,不能默认对全部条目执行全量两两比较。

可重建的 AssociationProjection 保存三个分项、基础分、算法版本和生成依据; 版本化的 AssociationOverride 独立保存人工调整、覆盖或屏蔽决定。 用户可以增强、削弱、屏蔽或恢复一条关联;重新计算基础分时必须保留人工决定。 “不分块”和“隐私文档”等特殊字段可以作为低权重结构特征,但不能单独触发关联。

相似度关联表示“可能相关”,不表示事实关系,但达到可见条件后可以直接作为正式知识图谱中的 对称 similarity 边,无需逐条人工确认。用户可以编辑、屏蔽/删除或恢复;人工 override 必须优先于 后续重建。supportscontradictspart_of 等具有语义的关系由用户通过版本化关系命令建立, 不要求额外的确认队列。 查询 Entry 时必须提供打开完整来源文档的入口。

7. 第五步:搜索

系统至少支持:

  • 类型、主/副领域、内容关键词及自定义“其他”类名;
  • 正文精确匹配、Unicode 子串、中文确定性分词和本地模糊匹配;
  • 来源、时间、文档、拆分方式、可见范围及其他结构化条件;
  • 关联强度、有限邻域和可解释的相似结果;
  • 基于标签、正文和已接受关系的搜索联想。

无 AI 时,搜索使用结构化 SQL、确定性词项、子串和本地相似算法。 向量召回和 RAG 可以后续加入,但只能增强语义召回、查询扩展和带出处综合。

隐私过滤必须在计数、候选生成、排序、关联遍历、联想和分页之前执行:

  • 默认查询、直接 ID 访问和完整文档读取均不得返回隐私内容或泄露其存在;
  • 只有用户在当前操作中明确启用 includePrivate 才能扩大范围;
  • 普通范围与隐私范围使用不同查询身份和分页游标;
  • 任一端为隐私 Entry 的关联也按隐私内容处理;
  • 隐私内容默认不得进入外部 AI、普通范围日志/缓存、报告或导出。

8. 人工与 AI 协作

系统必须保留完整的无 AI 通路:人工收集来源、调整拆分、设置关键词和关联强度, 随后由确定性流程完成保存、索引、候选关联和搜索。

AI 可以参与文档理解、拆分、关键词提取、文档标签聚合、关联发现和查询联想, 但只能产生标准提案或调用用户已授权的同一应用命令。 所有 AI 结果记录输入版本、供应商、模型、提示/规则版本、参数、时间和审核状态。 AI 关闭、失败或未配置时,不得改变数据库语义或使核心流程不可用。

9. 测试与验收

  • 首批完整内容处理链可以使用显式启用的 AI 服务运行并评估结果质量。
  • 人工测试至少证明“导入—调整拆分—修改关键词—调整关联—搜索—返回来源”通路完整。
  • 默认单元测试和持续集成不得依赖实时 AI;使用合成输入、固定输出或模型适配器替身。
  • 真实 AI 测试是独立 smoke,必须记录供应商、模型、输入范围和结果,失败不能阻断无 AI 核心。
  • 重新导入、重新处理和重试不得产生重复条目、标签或关联副作用。

10. 不变量

  • 原始来源、文档结构、关键词指派、关联和搜索投影分层保存。
  • 所有条目均可回到准确来源位置及完整文档上下文。
  • 用户修改具有历史,不被自动化静默覆盖。
  • 隐私和“不分块”只能由用户设置,并保持相互独立。
  • 隐私默认隐藏适用于所有读取和派生通道。
  • AI、向量和 RAG 都不是核心数据正确性或基本可用性的依赖。
  • 规范数据保存在工作区范围的 PostgreSQL 和外部 Blob 中;派生索引可删除并重建。
  • 新增依赖、分词器、模型、媒体处理器或搜索服务前必须完成依赖与许可证准入。