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(用于前端)
后端设置
克隆仓库:
git clone https://gitcode.com/gh_mirrors/kn/knowledge-table进入后端目录:
cd knowledge-table/backend/创建并激活虚拟环境:
python3 -m venv venv source venv/bin/activate # Windows 使用 `venv\Scripts\activate`安装依赖:
pip install .启动后端:
cd src/ python -m uvicorn app.main:app后端将在
http://localhost:8000可用。
前端设置
进入前端目录:
cd ../frontend/安装 Bun(如未安装):
curl https://bun.sh/install | bash安装依赖:
bun install启动前端:
bun start前端将在
http://localhost:5173可用。
环境配置
- 将
.env.sample重命名为.env - 在
.env文件中添加您的 OpenAI API 密钥 - 在
.env中配置向量存储,目前支持 Milvus 和 Qdrant
📝 实际应用场景
Knowledge Table 适用于多种业务场景,帮助您轻松处理各类文档数据:
合同管理
提取关键信息,如当事人名称、生效日期和续期日期,简化合同审查流程。
财务报告分析
从年度报告或收益报表中提取财务数据,快速获取关键财务指标。
研究信息提取
通过关键问题从一系列研究报告中提取信息,加速文献综述过程。
元数据生成
通过对文件运行有针对性的问题(如"此电子邮件线程是关于什么项目的?"),对文档和文件的信息进行分类和标记。
🔄 导出为三元组
为了创建三元组的模式,我们使用 LLM 考虑列的实体类型、用于生成单元格的问题以及值本身,以创建模式和三元组。文档名称被插入为节点属性。向量块 ID 也包含在三元组的 JSON 文件中,并与创建的三元组相关联。
📈 可选集成
Unstructured API
Knowledge Table 提供与 Unstructured API 的可选集成,以增强文档处理能力。此集成允许从各种文档类型进行更高级的解析和提取。
要使用 Unstructured API 集成:
- 在 Unstructured.io 注册 API 密钥
- 在
.env文件中设置UNSTRUCTURED_API_KEY环境变量 - 安装带有 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。
贡献步骤:
- Fork 仓库
- 为您的功能或错误修复创建新分支
- 进行更改并使用描述性消息提交
- 将更改推送到您的 forked 仓库
- 向主仓库打开 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),仅供参考
