三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

Knowledge Table:让非结构化文档秒变结构化数据的终极开源工具

Knowledge Table:让非结构化文档秒变结构化数据的终极开源工具

Knowledge Table:让非结构化文档秒变结构化数据的终极开源工具

【免费下载链接】knowledge-tableKnowledge Table is an open-source package designed to simplify extracting and exploring structured data from unstructured documents.项目地址: https://gitcode.com/gh_mirrors/kn/knowledge-table

Knowledge Table是一款强大的开源工具,专为简化从非结构化文档中提取和探索结构化数据而设计。它通过自然语言查询界面,帮助用户轻松创建表格和图形等结构化知识表示,让复杂的文档数据处理变得简单高效。

🚀 为什么选择 Knowledge Table?

在当今数据驱动的世界,更好的 RAG(检索增强生成)系统依赖于将非结构化数据转化为表格或图形等结构化格式。Knowledge Table 作为 WhyHow.AI 开发的核心工具,在这一过程中发挥着关键作用。它直观的界面使技术和非技术用户都能轻松探索和管理数据,同时作为开源项目,它完全可定制以满足您的特定需求。

无论是集成自己的模型、工作流还是提取规则,Knowledge Table 的灵活性都能支持创新并适应您的独特要求。通过以正确的格式组织正确的数据,它帮助您简化数据提取过程,轻松解锁非结构化信息中的宝贵见解。

💡 核心功能亮点

Knowledge Table 提供了一系列强大功能,让文档数据处理变得前所未有的简单:

自然语言提取

使用自然语言查询从非结构化文档中提取结构化数据,无需复杂的编程知识。

自定义提取规则

定义规则来指导提取过程并确保数据质量,支持列级和全局级规则设置。目前支持的规则类型包括:

  • May Return:为 LLM 提供答案示例,指导提取方向
  • Must Return:指定允许返回的答案列表,提供严格限制
  • Allowed # of Responses:限制返回结果数量,确保精准性
  • Resolve Entity:将不同表述解析为统一实体,如将 "blackrock"、"Blackrock, Inc." 统一为 "Blackrock"

多样化格式支持

控制提取数据的输出格式,目前支持文本、文本列表、数字、数字列表和布尔值格式。

数据追溯与过滤

通过 UI 中显示的来源信息实现数据可追溯性,并可基于元数据或提取的数据过滤文档。

灵活导出选项

支持将提取的数据导出为 CSV 或图形三元组,满足不同场景的数据使用需求。

链式提取能力

使用 @ 符号引用先前的列,实现复杂的链式提取,例如:"What are the treatments for@disease?"

📚 核心概念解析

表格(Tables)

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

文档(Documents)

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

问题(Question)

问题是指导提取的核心机制,它定义了您想要从文档中提取的数据内容。

🔧 快速开始指南

使用 Docker 运行(推荐)

前提条件
  • Docker
  • Docker Compose
启动应用
docker-compose up -d --build
停止应用
docker-compose down
访问项目

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

本地运行

前提条件
  • Python 3.10+
  • Bun(用于前端)
后端设置
  1. 克隆仓库

    git clone https://gitcode.com/gh_mirrors/kn/knowledge-table
  2. 进入后端目录

    cd knowledge-table/backend/
  3. 创建并激活虚拟环境

    python3 -m venv venv source venv/bin/activate # Windows 使用 `venv\Scripts\activate`
  4. 安装依赖

    pip install .
  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中配置向量存储,目前支持 Milvus 和 Qdrant

📝 实际应用场景

Knowledge Table 适用于多种业务场景,帮助您轻松处理各类文档数据:

合同管理

提取关键信息,如当事人名称、生效日期和续期日期,简化合同审查流程。

财务报告分析

从年度报告或收益报表中提取财务数据,快速获取关键财务指标。

研究信息提取

通过关键问题从一系列研究报告中提取信息,加速文献综述过程。

元数据生成

通过对文件运行有针对性的问题(如"此电子邮件线程是关于什么项目的?"),对文档和文件的信息进行分类和标记。

🔄 导出为三元组

为了创建三元组的模式,我们使用 LLM 考虑列的实体类型、用于生成单元格的问题以及值本身,以创建模式和三元组。文档名称被插入为节点属性。向量块 ID 也包含在三元组的 JSON 文件中,并与创建的三元组相关联。

📈 可选集成

Unstructured API

Knowledge Table 提供与 Unstructured API 的可选集成,以增强文档处理能力。此集成允许从各种文档类型进行更高级的解析和提取。

要使用 Unstructured API 集成:

  1. 在 Unstructured.io 注册 API 密钥
  2. .env文件中设置UNSTRUCTURED_API_KEY环境变量
  3. 安装带有 Unstructured 支持的项目:
    pip install .[unstructured]

当设置UNSTRUCTURED_API_KEY时,Knowledge Table 将自动使用 Unstructured API 进行文档处理。如果未设置密钥或 Unstructured API 出现问题,系统将回退到默认文档加载器。

注意:使用 Unstructured API 可能会根据您的 Unstructured.io 计划产生费用。

🔧 扩展项目

Knowledge Table 设计灵活且可定制,允许您对其进行扩展以适应您的工作流:

  • 与自己的数据库集成
  • 创建自定义问题和规则
  • 连接您的模型
  • 使用自定义嵌入
  • 扩展以处理更大的工作负载

🛣️ 发展路线图

Knowledge Table 正在不断发展,以下是即将推出的功能:

  • 更多 LLM 集成:Azure OpenAI、Llama3、GPT-4、Anthropic 等
  • 更多向量数据库支持:Weaviate、Chroma、Pinecone 等
  • 后端数据存储:PostgreSQL、MongoDB、MySQL、Redis 等
  • 其他功能:云部署脚本、自定义嵌入支持等

🤝 贡献指南

我们欢迎社区贡献来改进 Knowledge Table。如果您有任何想法、错误报告或功能请求,请在仓库上打开 issue。

贡献步骤:

  1. Fork 仓库
  2. 为您的功能或错误修复创建新分支
  3. 进行更改并使用描述性消息提交
  4. 将更改推送到您的 forked 仓库
  5. 向主仓库打开 pull request

📄 许可证

本项目采用 MIT 许可证。详情请参见 LICENSE 文件。

📧 支持与联系

WhyHow.AI 正在构建工具,帮助开发人员使用图形结构为其 RAG 管道带来更多确定性和控制力。如果您正在将知识图谱整合到 RAG 中,欢迎通过 team@whyhow.ai 与我们交流,或在 WhyHow.AI 关注我们的 newsletter。加入我们的 Discord 讨论。

【免费下载链接】knowledge-tableKnowledge Table is an open-source package designed to simplify extracting and exploring structured data from unstructured documents.项目地址: https://gitcode.com/gh_mirrors/kn/knowledge-table

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

← 返回列表