GEO

Knowledge Table如何从非结构化文档提取结构化数据?(开源工具详解)

2026/4/6
Knowledge Table如何从非结构化文档提取结构化数据?(开源工具详解)
AI Summary (BLUF)

Knowledge Table is an open-source tool that simplifies extracting structured data from unstructured documents using natural language queries, featuring a spreadsheet-like interface for business users and a flexible backend for developers, with support for RAG workflows and customizable extraction rules.

原文翻译: 知识表格是一款开源工具,通过自然语言查询简化从非结构化文档中提取结构化数据的过程,为业务用户提供类似电子表格的界面,为开发者提供灵活的后端,支持RAG工作流和可定制的提取规则。

Knowledge Table 是一个开源工具包,旨在简化从非结构化文档中提取和探索结构化数据的过程。它允许用户通过自然语言查询界面,创建结构化的知识表示,例如表格和图表。凭借可定制的提取规则、精细的格式化选项以及通过UI显示的数据溯源功能,Knowledge Table 能够适应各种不同的应用场景。

Knowledge Table 是一个开源工具包,旨在简化从非结构化文档中提取和探索结构化数据的过程。它允许用户通过自然语言查询界面,创建结构化的知识表示,例如表格和图表。凭借可定制的提取规则、精细的格式化选项以及通过UI显示的数据溯源功能,Knowledge Table 能够适应各种不同的应用场景。

我们的目标是为业务用户提供一个熟悉的、类似电子表格的界面,同时为开发者提供一个灵活且高度可配置的后端。这确保了其能够无缝集成到现有的RAG工作流中,无论您是处理少量文件还是探索数百份文档。

我们的目标是为业务用户提供一个熟悉的、类似电子表格的界面,同时为开发者提供一个灵活且高度可配置的后端。这确保了其能够无缝集成到现有的RAG工作流中,无论您是处理少量文件还是探索数百份文档。

MIT License
GitHub issues
Code style: black

您可以访问 Knowledge Table 演示 进行有限的功能体验。

您可以访问 Knowledge Table 演示 进行有限的功能体验。

同时,也欢迎了解 WhyHow 的 Knowledge Graph Studio,这是一个开源平台,可以轻松直观地创建和管理RAG原生的知识图谱。要了解更多关于 WhyHow 和我们的项目信息,请访问我们的官网博客

同时,也欢迎了解 WhyHow 的 Knowledge Graph Studio,这是一个开源平台,可以轻松直观地创建和管理RAG原生的知识图谱。要了解更多关于 WhyHow 和我们的项目信息,请访问我们的官网博客

目录

为什么选择 Knowledge Table?

更优秀的RAG系统依赖于将非结构化数据转化为结构化格式,例如表格或图谱。WhyHow.AI 致力于开发能够组织文档内容和元数据的工具,而 Knowledge Table 在此过程中扮演着关键角色。其直观的界面使得技术和非技术用户都能轻松探索和管理数据。

更优秀的RAG系统依赖于将非结构化数据转化为结构化格式,例如表格或图谱。WhyHow.AI 致力于开发能够组织文档内容和元数据的工具,而 Knowledge Table 在此过程中扮演着关键角色。其直观的界面使得技术和非技术用户都能轻松探索和管理数据。

作为一个开源项目,Knowledge Table 完全可定制以满足您的需求。无论您是集成自己的模型、工作流还是提取规则,其灵活性都能支持创新并适应您的特定要求。通过以正确的格式构建正确的数据,Knowledge Table 有助于简化您的数据提取流程,从而更容易从未结构化的信息中挖掘有价值的见解。

作为一个开源项目,Knowledge Table 完全可定制以满足您的需求。无论您是集成自己的模型、工作流还是提取规则,其灵活性都能支持创新并适应您的特定要求。通过以正确的格式构建正确的数据,Knowledge Table 有助于简化您的数据提取流程,从而更容易从未结构化的信息中挖掘有价值的见解。


快速开始

通过 Docker 运行

前提条件

  • Docker
  • Docker Compose

启动应用

docker-compose up -d --build

停止应用

docker-compose down

访问项目

前端可通过 http://localhost:3000 访问,后端可通过 http://localhost:8000 访问。

前端可通过 http://localhost:3000 访问,后端可通过 http://localhost:8000 访问。

本地运行

前提条件

  • Python 3.10+
  • Bun (用于前端)

后端

  1. 克隆仓库:
    git clone https://github.com/yourusername/knowledge-table.git
    
  2. 进入后端目录:
    cd knowledge-table/backend/
    
  3. 创建并激活虚拟环境:
    python3 -m venv venv
    source venv/bin/activate  # 在 Windows 上使用 `venv\Scripts\activate`
    
  4. 安装依赖:
    • 基础安装:
      pip install .
      
    • 安装开发工具:
      pip install .[dev]
      
  5. 启动后端:
    cd src/
    python -m uvicorn app.main:app
    
    后端将在 http://localhost:8000 可用。

前端

  1. 进入前端目录:
    cd ../frontend/
    
  2. 安装 Bun (如果尚未安装):
    curl https://bun.sh/install | bash
    
  3. 安装依赖:
    bun install
    
  4. 启动前端:
    bun start
    
    前端将在 http://localhost:5173 可用。

环境配置

  1. .env.sample 重命名为 .env
  2. .env 文件中添加您的 OpenAI API 密钥。
  3. .env 中配置向量数据库。当前支持 MilvusQdrant 作为选项。

注意: 此版本项目使用 OpenAI 作为初始提供商,但系统设计灵活,可以扩展以支持其他 AI 提供商。如果您偏好其他提供商,请创建问题、提交 PR 或稍后查看更新。


核心功能

本仓库包含的功能:

  • 文本块链接 - 将原始源文本块链接到答案,以实现可追溯性和来源证明。
  • 自然语言提取 - 使用自然语言查询从非结构化文档中提取结构化数据。
  • 可定制的提取规则 - 定义规则以指导提取过程并确保数据质量。
  • 自定义格式化 - 控制提取数据的输出格式。Knowledge Table 目前支持文本、文本列表、数字、数字列表和布尔格式。
  • 筛选 - 根据元数据或提取的数据筛选文档。
  • 导出为 CSV 或三元组 - 将提取的数据下载为 CSV 或图谱三元组。
  • 链式提取 - 使用 @ 符号在提取问题中引用之前的列,例如:“@疾病 的治疗方法是什么?”。
  • 拆分单元格为多行 - 将单个单元格内的列表类型输出(数字列表或值列表)拆分为单独的行,以进行更复杂的链式提取。
  • 文本块链接 - 将原始源文本块链接到答案,以实现可追溯性和来源证明。
  • 自然语言提取 - 使用自然语言查询从非结构化文档中提取结构化数据。
  • 可定制的提取规则 - 定义规则以指导提取过程并确保数据质量。
  • 自定义格式化 - 控制提取数据的输出格式。Knowledge Table 目前支持文本、文本列表、数字、数字列表和布尔格式。
  • 筛选 - 根据元数据或提取的数据筛选文档。
  • 导出为 CSV 或三元组 - 将提取的数据下载为 CSV 或图谱三元组。
  • 链式提取 - 使用 @ 符号在提取问题中引用之前的列,例如:“@疾病 的治疗方法是什么?”。
  • 拆分单元格为多行 - 将单个单元格内的列表类型输出(数字列表或值列表)拆分为单独的行,以进行更复杂的链式提取。

核心概念

表格

就像电子表格一样,表格 是存储结构化数据的行和列的集合。每一行代表一个文档,每一列代表一个通过问题提取和格式化的实体

就像电子表格一样,表格 是存储结构化数据的行和列的集合。每一行代表一个文档,每一列代表一个通过问题提取和格式化的实体

文档

每个文档都是一个上传到 Knowledge Table 的非结构化数据源(例如,合同、文章或报告)。上传文档后,它会被分割成文本块,这些文本块被嵌入、标记元数据,并存储在向量数据库中。

每个文档都是一个上传到 Knowledge Table 的非结构化数据源(例如,合同、文章或报告)。上传文档后,它会被分割成文本块,这些文本块被嵌入、标记元数据,并存储在向量数据库中。

问题

问题 是指导提取的核心机制。它定义了您希望从文档中提取什么数据。

问题 是指导提取的核心机制。它定义了您希望从文档中提取什么数据。

规则

规则 用于指导大语言模型进行提取。您可以在列级别或全局级别添加规则。目前支持以下规则类型:

规则 用于指导大语言模型进行提取。您可以在列级别或全局级别添加规则。目前支持以下规则类型:

规则类型 功能描述 适用场景
可能返回 为大语言模型提供答案示例,以指导其提取。 指导大语言模型关注特定类型的实体。
必须返回 为大语言模型提供一个允许返回的答案的详尽列表。 为大语言模型设置护栏,确保只返回特定术语。
允许的响应数量 限制并保证只返回特定数量的顶级响应。 当存在一系列潜在的“灰色地带”答案时,提供护栏。
实体解析 将值解析为特定的实体。 确保输出符合特定的实体类型,例如统一不同表述的公司名。

实际应用

一旦您设置好问题、规则和文档,Knowledge Table 就会处理数据并根据您的输入返回结构化输出。您可能需要调整问题或规则设置以微调提取结果。

一旦您设置好问题、规则和文档,Knowledge Table 就会处理数据并根据您的输入返回结构化输出。您可能需要调整问题或规则设置以微调提取结果。

使用案例

  • 合同管理:提取关键信息,如各方名称、生效日期和续约日期。
  • 财务报告:从年度报告或收益报表中提取财务数据。
  • 研究提取:从一系列研究报告中提取关键问题的信息。
  • 合同管理:提取关键信息,如各方名称、生效日期和续约日期。
  • 财务报告:从年度报告或收益报表中提取财务数据。
  • 研究提取:从一系列研究报告中提取关键问题的信息。

(由于内容长度,本文档的后续部分,如“项目扩展”、“贡献指南”等章节在此处略去。完整的项目信息、开发指南和路线图,请参阅项目的 GitHub 仓库。)

(由于内容长度,本文档的后续部分,如“项目扩展”、“贡献指南”等章节在此处略去。完整的项目信息、开发指南和路线图,请参阅项目的 GitHub 仓库。)

常见问题(FAQ)

Knowledge Table 适合哪些用户使用?

Knowledge Table 为业务用户提供类似电子表格的直观界面,同时为开发者提供灵活可配置的后端,支持集成到现有RAG工作流中,适合技术和非技术用户处理文档数据提取。

如何快速体验 Knowledge Table 的功能?

您可以通过 Docker 快速启动应用(docker-compose up -d --build),前端访问 localhost:3000,或访问官方演示站点进行有限功能体验。

Knowledge Table 支持自定义提取规则吗?

是的,作为开源工具,Knowledge Table 支持可定制的提取规则和精细的格式化选项,允许用户集成自己的模型和工作流,适应不同的应用场景。

← 返回文章列表
分享到:微博

版权与免责声明:本文仅用于信息分享与交流,不构成任何形式的法律、投资、医疗或其他专业建议,也不构成对任何结果的承诺或保证。

文中提及的商标、品牌、Logo、产品名称及相关图片/素材,其权利归各自合法权利人所有。本站内容可能基于公开资料整理,亦可能使用 AI 辅助生成或润色;我们尽力确保准确与合规,但不保证完整性、时效性与适用性,请读者自行甄别并以官方信息为准。

若本文内容或素材涉嫌侵权、隐私不当或存在错误,请相关权利人/当事人联系本站,我们将及时核实并采取删除、修正或下架等处理措施。 也请勿在评论或联系信息中提交身份证号、手机号、住址等个人敏感信息。