Sycamore 项目介绍
Sycamore 是一个开源的,人工智能驱动的文档处理引擎,专为ETL(提取、转换、加载)、RAG(检索增强生成)、基于LLM(大规模语言模型)的应用程序和非结构化数据的分析而设计。这个项目能够分割和丰富各种文档类型,包括报告、演示文稿、抄本、手册等等。Sycamore 可以分析复杂的文档,例如包含内嵌表格、图形、图表及其他信息图的PDF和图片。
基本功能
Sycamore 利用 Aryn DocParse(以前称为 Aryn 分区服务)来处理文档。这是一个无服务器的、利用GPU的API,用于分割和标记文档,进行光学字符识别(OCR)、提取表格和图像等。它使用了Aryn最先进的开源深度学习模型 DETR,经过超过80k家企业文档的训练,与其他系统相比,它的数据分块准确性增加了6倍,同时在混合搜索或RAG方面的召回率提高了2倍。
Aryn DocParse 接受各种文档格式并返回JSON格式的分区输出。此外,用户还可以使用 Sycamore 进行进一步的数据提取、丰富、转换、清洗以及加载到数据库中。对于这些转换,用户可以选择使用不同的LLM。
Sycamore 还能够将高质量的数据加载到各种矢量数据库和混合搜索引擎中,包括 OpenSearch、ElasticSearch、Pinecone、DuckDB、Qdrant 和 Weaviate。
框架特色
Sycamore 框架基于一种称为 DocSet 的文档处理抽象构建,提供了强大的高层次Python变换工具用于数据处理、丰富和清洗。DocSet 也包含了可扩展的数据处理技术,可以可靠加载数据块。它的函数式编程方式允许用户快速自定义和实验,以改进RAG的结果质量。
项目功能
- 与 Aryn DocParse 集成,使用最先进的视觉AI模型进行分段,并保留文档的语义结构
- DocSet 抽象能够扩展和可靠地转换和操作非结构化文档
- 高质量的表格提取、OCR、视觉摘要、和由LLM驱动的用户自定义函数(UDF)及其他高效Python数据变换
- 快速创建矢量嵌入,用户可以选择使用的AI模型
- 提供自动数据抓取器支持(例如 Amazon S3 和 HTTP)、用于编写和迭代作业的 Jupyter notebook,以及用于测试的 OpenSearch 混合搜索和 RAG 引擎
- 可扩展的 Ray 后端
使用指南
Sycamore 目前可以运行在 Linux 和 Mac OS 系统上。用户可以通过运行 pip install sycamore-ai
来安装该项目。此外,Sycamore 提供了通过Python extras连接至矢量数据库的功能,例如,通过 pip install sycamore-ai[duckdb]
安装连接器。
使用 Aryn DocParse 需要注册并获取API密钥。
获取更多信息
用户可以访问以下资源来了解更多关于 Sycamore 项目的信息:
- 官方文档
- 示例教程笔记本
- 加入Slack社区
- PyPi上的数据准备库
- 如有疑问,请联系 info@aryn.ai
贡献指南
想要为 Sycamore 项目做出贡献的用户可以查看 贡献指南,了解更多关于如何参与开发及设置开发环境的信息。
通过这些功能和资源,Sycamore 提供了一个强大的平台来简化和加速复杂的文档处理和分析任务。