面向生产环境的结构化文档数据提取系统,支持多模态大模型与可插拔工作流编排,可处理发票、银行对账单、金融表格等多种业务文档。
项目概述#
Sparrow 是由 Katana ML(主要开发者 Andrej Baranovskij)开发的面向生产环境的结构化数据提取系统,专注于将非结构化文档(发票、收据、银行对账单、金融表格等)高精度、自动化地转换为结构化 JSON 数据。
核心架构#
项目采用单体仓库多应用架构,包含三个顶级目录:
sparrow-data/:示例测试数据(bonds_table.png、bank_statement.pdf、invoice.pdf 等)sparrow-ml/:核心计算引擎,含llm/(主 API 服务器及 CLI)和agents/(工作流编排服务)sparrow-ui/:基于 Gradio 的 Web 交互界面
多管线引擎#
- Sparrow Parse:基于 Vision LLM 的视觉结构化提取管线,支持 Mistral、Qwen 2.5-VL、DeepSeek OCR、dots.ocr、dots-mocr 等模型
- Sparrow Instructor:基于 Text LLM 的文本指令处理、验证与决策管线(支持 GPT-OSS、Mistral、Qwen 3.5 等)
- Sparrow Agents:基于 Prefect 编排的多步处理管线,可将复杂场景拆解为分类→提取→验证等子任务
推理后端#
- Apple Silicon:深度集成 MLX 框架,利用统一内存高效运行大参数模型(依赖包
sparrow-parse[mlx]) - NVIDIA/AMD GPU:兼容 vLLM 与 Ollama 后端,需 CUDA 环境
- 云端与 CPU:支持 Hugging Face Cloud GPU 后端,或本地运行 ≤7B 小模型
文档处理能力#
- 支持 PNG、JPG 图片及多页 PDF 输入
- 原生适配发票、收据、表单、银行对账单、金融表格等文档类型
- 通过
--crop-size参数裁切文档边框以提升 Vision LLM 聚焦精度 - JSON Schema 驱动的输出约束与自动校验
使用方式#
CLI#
./sparrow.sh "<JSON_SCHEMA>" --pipeline "<PIPELINE>" [OPTIONS] --file-path "<FILE>"
核心参数包括 --pipeline(选择管线)、--options(指定后端及模型)、--instruction(文本指令)、--validation(字段验证)、--crop-size(裁切像素)、--page-type(页面分类)。
RESTful API#
- 文档提取:
POST /api/v1/sparrow-llm/inference(multipart/form-data) - 文本指令:
POST /api/v1/sparrow-llm/instruction-inference(form-urlencoded) - 启动后访问
http://localhost:8002/api/v1/sparrow-llm/docs获取 Swagger 交互文档
Agent API#
curl -X POST 'http://localhost:8001/api/v1/sparrow-agents/execute/file' \
-F 'agent_name=medical_prescriptions' \
-F 'extraction_params={"sparrow_key":"123456"}' \
-F 'file=@prescription.pdf'
典型应用场景#
- 金融票据自动化:从 PDF/图片中提取发票、银行对账单全量结构化数据
- 金融表格提取:从债券表等文档提取 instrument_name、valuation 等字段
- 医疗处方处理:通过 Agent 编排分类→提取→验证的多步工作流
- 文本指令处理:数学运算、文本分析、摘要、问答
- Function Calling 集成:如股票数据查询等外部数据接入
企业级特性#
- API-First 设计,完整 RESTful API 及 Swagger 文档
- 基于 Prefect 的 Dashboard 与 Agent 工作流追踪(Dashboard 需本地 Oracle Database 23ai Free)
- 内置速率限制与使用分析能力
- 以 GPL-3.0 协议开源,同时提供商业双授权
安装要求#
Python 3.12.10+、macOS/Linux/Windows、GPU(需匹配模型显存要求)。PDF 处理需安装 poppler。