- 状态:已确认的产品处理基线
- 最近更新:2026-08-20
- 范围:文档摄取、条目生成、关键词标注、关联、检索及人工/AI 协作
- 上位约束:产品需求、知识核心架构、 ADR 0005、 ADR 0006、 ADR 0007和 ADR 0016和 ADR 0017
StruInfo 接收以文档为主的异构资料,并把它们转换成可追溯、可修改、可关联和可搜索的 信息条目网络。 文档可以包含图片、视频和其他附件;媒体原件及来源关系必须保留。
核心流程为:
保存来源与不可变版本
→ 按结构生成信息条目
→ 为条目添加三类关键词
→ 聚合文档标签并建立双向查找
→ 生成选择性的关联边
→ 通过结构、文本和关系检索
PostgreSQL 保存规范关系数据,包体外 Blob 存储保存原始文档和媒体。
InformationEntry(下称 Entry)是从具体 Snapshot 生成的首要检索单元。
搜索索引、自动关联基础分和可选向量均是可重建派生数据;人工调整是独立的规范控制记录。
Resource表示一份来源文档的稳定身份;Snapshot表示该文档的不可变版本。- 输入时至少记录来源、唯一标识、内容哈希、获取时间、可用的发布/修改时间、语言和媒体引用。
- 来源更新产生新 Snapshot,不覆盖旧版本;重复输入必须幂等。
- 原始字节、规范化正文和媒体存放在外部工作区数据根,不能进入 Git、安装包或测试样本。
- 图片和视频保留内容哈希、来源、文档位置及用途;OCR、字幕和模型描述属于派生结果, 不能覆盖原件。
默认按标题层级和段落结构拆分文档,整体行为与确定性 Markdown 结构解析一致。
每个 Entry 必须保存:
- 稳定身份、所属 Snapshot 和文档身份;
- 原始顺序、标题路径及准确来源位置;
- 正文、内容哈希及相关媒体位置;
- 当前拆分版本以及与拆分、合并前条目的沿袭关系。
长期产品允许用户手工拆分、合并、调整边界或顺序,但每一步都不能修改原始 Snapshot。
M1E-4A/4B 的当前可运行子集只处理尚未生成 Entry 的 Snapshot:用户可在既有 section
Fragment 边界合并连续分组,也可在只读正文中把光标放到任意 Unicode 标量边界后明确拆开。
全部区间必须保持来源顺序且恰好覆盖一次;服务端从不可变 Fragment 重建正文,并把精确半开
区间保存为可选输入子记录。来源重排和已物化 Entry 的结构重组仍需后续版本与沿袭边界,
当前实现不会用新结构覆盖已有标签、联系或查询身份。
文档具有两个相互独立、只能由用户选择的特殊字段:
chunk_mode = split | whole:whole表示“不分块”,并生成一个全文 Entry;visibility = normal | private:private表示“隐私文档”,不自动决定是否拆分。
两种文档都继续使用统一的标注、入库和搜索流程;全文 Entry 不需要执行多条目聚合, 但仍保留文档关联和搜索投影。
每个 Entry 使用三个相互独立的关键词维度:
| 维度 | 数量 | 规则 |
|---|---|---|
| 内容关键词 | 1~N 个 | 从正文提取;数量按长度和语义覆盖度由版本化规则决定;不使用固定词表 |
| 类型关键词 | 恰好 1 个 | 从固定类型表选择 |
| 领域关键词 | 1~3 个 | 1 个主领域,必要时增加最多 2 个副领域 |
这三类关键词是产品定义的 Entry 标注维度,不替代既有的准入动作、知识类型、认知角色或 用户可扩展内容分类。
内容关键词保留原文写法、规范化形式和来源位置。 文档拆分、语言分词和关键词提取是三个独立步骤,不能混用状态或结果。
类型关键词为:
- 纪实资料
- 知识解释
- 操作规范
- 调查分析
- 观点论证
- 个人体验
- 互动协作
- 公共传播
- 文学创作
- 其他
领域关键词为:
- 数理与形式系统
- 自然与环境
- 工程、计算与技术
- 生命、医学与健康
- 社会与公共事务
- 经济、商业与组织
- 法律、政策与治理
- 人文、历史与思想
- 语言、传播与教育
- 文化、艺术与娱乐
- 日常生活、个人与家庭
- 其他
选择“其他”时必须填写自定义类名。
系统分别保存规范值 other 和工作区自定义显示名;类型与领域的自定义名称互不共用。
关联计算不得仅因两个条目的规范值都是 other 而判定它们相近,必须比较自定义名称或
其他内容特征。
每次关键词指派都记录操作来源、规则/模型版本和时间。 用户可以新增、删除或替换关键词;人工结果优先,后续规则或 AI 不得静默覆盖。
文档标签主要由全文内容倾向决定,条目关键词的覆盖率和频率只作为附加参考。 聚合结果必须记录算法或规则版本,并允许人工修改。
文档与 Entry 通过规范外键双向查找,不在双方重复保存整套元数据:
- Entry 可通过所属 Snapshot 读取来源、发布时间、修改时间和完整文档;
- Document 可查询其全部 Entry、顺序、关键词分布和关联情况;
- 为提高检索效率而展开的字段只进入可重建搜索投影。
全文 Entry 直接使用全文计算文档标签,不需要执行多条目频率汇总。
信息条目存入 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 必须优先于
后续重建。supports、contradicts、part_of 等具有语义的关系由用户通过版本化关系命令建立,
不要求额外的确认队列。
查询 Entry 时必须提供打开完整来源文档的入口。
系统至少支持:
- 类型、主/副领域、内容关键词及自定义“其他”类名;
- 正文精确匹配、Unicode 子串、中文确定性分词和本地模糊匹配;
- 来源、时间、文档、拆分方式、可见范围及其他结构化条件;
- 关联强度、有限邻域和可解释的相似结果;
- 基于标签、正文和已接受关系的搜索联想。
无 AI 时,搜索使用结构化 SQL、确定性词项、子串和本地相似算法。 向量召回和 RAG 可以后续加入,但只能增强语义召回、查询扩展和带出处综合。
隐私过滤必须在计数、候选生成、排序、关联遍历、联想和分页之前执行:
- 默认查询、直接 ID 访问和完整文档读取均不得返回隐私内容或泄露其存在;
- 只有用户在当前操作中明确启用
includePrivate才能扩大范围; - 普通范围与隐私范围使用不同查询身份和分页游标;
- 任一端为隐私 Entry 的关联也按隐私内容处理;
- 隐私内容默认不得进入外部 AI、普通范围日志/缓存、报告或导出。
系统必须保留完整的无 AI 通路:人工收集来源、调整拆分、设置关键词和关联强度, 随后由确定性流程完成保存、索引、候选关联和搜索。
AI 可以参与文档理解、拆分、关键词提取、文档标签聚合、关联发现和查询联想, 但只能产生标准提案或调用用户已授权的同一应用命令。 所有 AI 结果记录输入版本、供应商、模型、提示/规则版本、参数、时间和审核状态。 AI 关闭、失败或未配置时,不得改变数据库语义或使核心流程不可用。
- 首批完整内容处理链可以使用显式启用的 AI 服务运行并评估结果质量。
- 人工测试至少证明“导入—调整拆分—修改关键词—调整关联—搜索—返回来源”通路完整。
- 默认单元测试和持续集成不得依赖实时 AI;使用合成输入、固定输出或模型适配器替身。
- 真实 AI 测试是独立 smoke,必须记录供应商、模型、输入范围和结果,失败不能阻断无 AI 核心。
- 重新导入、重新处理和重试不得产生重复条目、标签或关联副作用。
- 原始来源、文档结构、关键词指派、关联和搜索投影分层保存。
- 所有条目均可回到准确来源位置及完整文档上下文。
- 用户修改具有历史,不被自动化静默覆盖。
- 隐私和“不分块”只能由用户设置,并保持相互独立。
- 隐私默认隐藏适用于所有读取和派生通道。
- AI、向量和 RAG 都不是核心数据正确性或基本可用性的依赖。
- 规范数据保存在工作区范围的 PostgreSQL 和外部 Blob 中;派生索引可删除并重建。
- 新增依赖、分词器、模型、媒体处理器或搜索服务前必须完成依赖与许可证准入。