Knowledge Table如何从非结构化文档提取结构化数据?(开源工具详解)
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工作流中,无论您是处理少量文件还是探索数百份文档。
您可以访问 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 (用于前端)
后端
- 克隆仓库:
git clone https://github.com/yourusername/knowledge-table.git - 进入后端目录:
cd knowledge-table/backend/ - 创建并激活虚拟环境:
python3 -m venv venv source venv/bin/activate # 在 Windows 上使用 `venv\Scripts\activate` - 安装依赖:
- 基础安装:
pip install . - 安装开发工具:
pip install .[dev]
- 基础安装:
- 启动后端:
后端将在cd src/ python -m uvicorn app.main:apphttp://localhost:8000可用。
前端
- 进入前端目录:
cd ../frontend/ - 安装 Bun (如果尚未安装):
curl https://bun.sh/install | bash - 安装依赖:
bun install - 启动前端:
前端将在bun starthttp://localhost:5173可用。
环境配置
注意: 此版本项目使用 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 辅助生成或润色;我们尽力确保准确与合规,但不保证完整性、时效性与适用性,请读者自行甄别并以官方信息为准。
若本文内容或素材涉嫌侵权、隐私不当或存在错误,请相关权利人/当事人联系本站,我们将及时核实并采取删除、修正或下架等处理措施。 也请勿在评论或联系信息中提交身份证号、手机号、住址等个人敏感信息。