尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Hyper-Extract 架构深潜:三层架构与数据流完全解析

Hyper-Extract 架构深潜:三层架构与数据流完全解析 Hyper-Extract 架构深潜三层架构与数据流完全解析【免费下载链接】Hyper-ExtractHypergraph is more powerful. Transform unstructured text into structured knowledge with LLMs. Graphs, hypergraphs, and spatio-temporal extractions — with one command.项目地址: https://gitcode.com/GitHub_Trending/hy/Hyper-ExtractHyper-Extract 是一个用 LLM 将非结构化文本转化为结构化知识的开源工具其核心由模板Template、方法Methods、自动类型Auto-Types组成的三层架构驱动配合分块 → 提取 → 合并 → 索引的数据流一条命令即可生成图谱、超图、时空结构等 8 种知识形态。本文带你完整走查它的架构设计与数据流转过程。上图展示了完整的分层视图顶层是he命令行接口中层是核心引擎左接 Templates、右接 Methods底层是 8 种 Auto-Types 数据结构。一、三层架构总览从命令到知识Hyper-Extract 的设计可以概括为三个问题长什么样数据结构、怎么提算法、怎么配置领域分别对应三层组件。层级组件职责源码位置第 1 层数据层Auto-Types8 种类型定义提取输出的数据结构内置搜索、可视化、保存能力hyperextract/types/base.py第 2 层算法层MethodsRAG 典型方法决定如何处理文本、识别实体与关系hyperextract/methods/registry.py第 3 层接口层Templates CLI / Python SDK80 预设模板封装领域配置用户一条命令即可用hyperextract/utils/template_engine/template.py这种自底向上的分层意味着用户只接触第 3 层模板名 一条命令算法与数据结构被完全封装。想深入设计文档可参考 docs/zh/concepts/architecture.md。1. 自动类型Auto-Types8 种知识容器自动类型是整个架构的地基。它们分为三大类记录类型AutoModel单条结构化记录、AutoList有序列表、AutoSet去重集合图谱类型AutoGraph二元关系、AutoHypergraph多实体关系、AutoTemporalGraph时间线、AutoSpatialGraph空间、AutoSpatioTemporalGraph时空结合语料类型AutoDocument块级检索零提取成本每种类型都是自包含的基于 Pydantic 的类型校验保证数据一致性同时内置search()、chat()、show()、dump()/load()等操作源码见 hyperextract/types/ 目录。图中左侧为记录类型AutoModel / AutoList / AutoSet右侧为图谱类型AutoGraph 到 AutoSpatioTemporalGraph直观展示了数据结构层的完整家族。2. 方法Methods可插拔的提取算法方法层提供两套算法路线路线代表方法适合场景典型方法直接提取iText2KG、KG-Gen、Atom中小文档追求三元组质量基于 RAGGraphRAG、LightRAG、Hyper-RAG、Cog-RAG大文档、复杂查询方法采用注册表Registry插件架构每个方法在导入时向全局注册表登记自己的类、类型和描述核心引擎按模板声明的方法名查找并实例化。这套机制让新算法只需实现约定接口、调用一次注册即可接入是典型的开闭原则实践实现见 hyperextract/methods/registry.py。3. 模板引擎Template Engine用户唯一的入口模板是 YAML 文件声明提取什么schema、怎么提示 LLMguideline、如何标识identifiers、如何显示display。模板引擎由三个组件协作Template YAML → Gallery(发现) → Parser(解析/校验) → Factory(工厂) → Auto-Type 实例Gallery扫描 hyperextract/templates/presets/ 下 finance、legal、medical、tcm 等领域目录提供模板查找与列表Parser解析 YAML 并生成 Pydantic schema同时负责多语言本地化Factory根据type字段调用create_graph()、create_list()等工厂方法装配 LLM 客户端与 Embedding 客户端返回可用的 Auto-Type 实例对 Python 用户来说一切归结为一行代码Template.create(general/biography_graph)统一入口实现见 hyperextract/utils/template_engine/template.py。二、数据流全解析从一段文本到可查询知识以一条典型的he parse命令为例文本在系统内经历四个阶段。三阶段概览文档输入 → AI 处理 → 结构化知识输出List / Set / Graph / Hypergraph / Timeline。阶段 1输入处理与分块原始文本超过块大小默认 2048 字符重叠 256 字符时会被自动切分为多个 chunk切分点优先落在段落、句子边界上。分块让 LLM 调用可控也让长文档具备并行处理的基础。阶段 2LLM 并行提取每个 chunk 进入模板生成的 Prompt调用 LLM 的结构化输出能力响应被直接解析为 Pydantic 模型——这一步由 hyperextract/types/base.py 中的parse()方法驱动。默认 10 个并发工作线程同时处理各块大幅缩短大文档的端到端耗时。阶段 3合并Merge各块的结果并非简单拼接合并阶段会执行三项关键操作实体去重——按模板定义的 identifier 规则识别同一实体关系组合——跨块出现的相同关系边被聚合冲突解决——同一字段出现矛盾值时按合并策略裁决合并策略merge strategy可在模板的 options 中声明解析器实现位于 hyperextract/utils/template_engine/parsers/options.py。阶段 4索引构建与查询合并完成即得到一个填充好数据的 Auto-Type 实例。调用build_index()建立向量索引后search()做检索、chat()结合上下文生成回答feed_text()还支持增量更新——同来源的新文本会触发旧事实的回滚保证知识库与源文档同步。整个持久化dump/load与查询链路都封装在类型实例内部对用户完全透明。三、数据流中的关键设计点类型安全贯穿全程从模板 YAML 到 LLM 结构化输出全部经 Pydantic schema 校验杜绝LLM 自由发挥导致的脏数据配置即代码换领域 换一个 YAML无需改代码80 预设模板覆盖金融、法律、医疗、工业、中医等场景格式参考 docs/zh/concepts/templates-format.md插件式扩展自定义方法只需注册自定义类型只需继承基类两个扩展点互不干扰标准格式互操作提取结果以 JSON/YAML 落盘并可导出 Obsidian、GraphML 等格式方便与现有知识工作流集成四、架构小结Hyper-Extract 的三层架构把知识提取拆解为职责清晰的三个平面Auto-Types 回答数据长什么样Methods 回答知识怎么提Templates 回答针对这个领域提什么而分块 → 并行提取 → 合并 → 索引的数据流则保证了从单段文本到百万字文档的一致体验。理解这条链路后无论你是想选择方法、定制模板还是扩展新类型都能快速在正确的层级找到切入点。概念总览docs/zh/concepts/index.md方法指南docs/zh/concepts/methods.md自动类型详解docs/zh/concepts/autotypes.md【免费下载链接】Hyper-ExtractHypergraph is more powerful. Transform unstructured text into structured knowledge with LLMs. Graphs, hypergraphs, and spatio-temporal extractions — with one command.项目地址: https://gitcode.com/GitHub_Trending/hy/Hyper-Extract创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表