使用 ML、LLM 和 Vision LLM 进行数据处理
Sparrow 是一种创新的开源解决方案,用于从各种文档和图像中高效提取和处理数据。它无缝处理表单、发票、收据和其他非结构化数据源。 Sparrow 以其模块化架构脱颖而出,提供独立的服务和代理,并针对强大的性能进行了优化。 Sparrow 的关键功能之一是可插拔架构。您可以使用 Sparrow Parse(支持视觉语言模型)或 Instructor 等工具和框架轻松集成和运行数据提取管道。 Sparrow 通过各种后端(例如 vLLM、Ollama、PyTorch 或 Apple MLX)启用本地 LLM 数据提取管道。带有 VL 模型的 Sparrow Parse 可以在本地运行,也可以在云 GPU 上执行推理。借助 Sparrow 解决方案,您可以获得 API,它有助于处理数据并将其转换为结构化输出,以便与自定义工作流程集成。
Sparrow 代理 - 使用 Sparrow,您可以构建独立的 LLM 代理,并使用 API 从您的系统调用它们。
尝试 Sparrow UI shell 应用程序
{
"bank" : " First Platypus Bank " ,
"address" : " 1234 Kings St., New York, NY 12123 " ,
"account_holder" : " Mary G. Orta " ,
"account_number" : " 1234567890123 " ,
"statement_date" : " 3/1/2022 " ,
"period_covered" : " 2/1/2022 - 3/1/2022 " ,
"account_summary" : {
"balance_on_march_1" : " $25,032.23 " ,
"total_money_in" : " $10,234.23 " ,
"total_money_out" : " $10,532.51 "
},
"transactions" : [
{
"date" : " 02/01 " ,
"description" : " PGD EasyPay Debit " ,
"withdrawal" : " 203.24 " ,
"deposit" : " " ,
"balance" : " 22,098.23 "
},
{
"date" : " 02/02 " ,
"description" : " AB&B Online Payment***** " ,
"withdrawal" : " 71.23 " ,
"deposit" : " " ,
"balance" : " 22,027.00 "
},
{
"date" : " 02/04 " ,
"description" : " Check No. 2345 " ,
"withdrawal" : " " ,
"deposit" : " 450.00 " ,
"balance" : " 22,477.00 "
},
{
"date" : " 02/05 " ,
"description" : " Payroll Direct Dep 23422342 Giants " ,
"withdrawal" : " " ,
"deposit" : " 2,534.65 " ,
"balance" : " 25,011.65 "
},
{
"date" : " 02/06 " ,
"description" : " Signature POS Debit - TJP " ,
"withdrawal" : " 84.50 " ,
"deposit" : " " ,
"balance" : " 24,927.15 "
},
{
"date" : " 02/07 " ,
"description" : " Check No. 234 " ,
"withdrawal" : " 1,400.00 " ,
"deposit" : " " ,
"balance" : " 23,527.15 "
},
{
"date" : " 02/08 " ,
"description" : " Check No. 342 " ,
"withdrawal" : " " ,
"deposit" : " 25.00 " ,
"balance" : " 23,552.15 "
},
{
"date" : " 02/09 " ,
"description" : " FPB AutoPay***** Credit Card " ,
"withdrawal" : " 456.02 " ,
"deposit" : " " ,
"balance" : " 23,096.13 "
},
{
"date" : " 02/08 " ,
"description" : " Check No. 123 " ,
"withdrawal" : " " ,
"deposit" : " 25.00 " ,
"balance" : " 23,552.15 "
},
{
"date" : " 02/09 " ,
"description" : " FPB AutoPay***** Credit Card " ,
"withdrawal" : " 156.02 " ,
"deposit" : " " ,
"balance" : " 23,096.13 "
},
{
"date" : " 02/08 " ,
"description" : " Cash Deposit " ,
"withdrawal" : " " ,
"deposit" : " 25.00 " ,
"balance" : " 23,552.15 "
}
],
"valid" : " true "
}
{
"data" : [
{
"instrument_name" : " UNITS BLACKROCK FIX INC DUB FDS PLC ISHS EUR INV GRD CP BD IDX/INST/E " ,
"valuation" : 19049
},
{
"instrument_name" : " UNITS ISHARES III PLC CORE EUR GOVT BOND UCITS ETF/EUR " ,
"valuation" : 83488
},
{
"instrument_name" : " UNITS ISHARES III PLC EUR CORP BOND 1-5YR UCITS ETF/EUR " ,
"valuation" : 213030
},
{
"instrument_name" : " UNIT ISHARES VI PLC/JP MORGAN USD E BOND EUR HED UCITS ETF DIST/HDGD/ " ,
"valuation" : 32774
},
{
"instrument_name" : " UNITS XTRACKERS II SICAV/EUR HY CORP BOND UCITS ETF/-1D-/DISTR. " ,
"valuation" : 23643
}
],
"valid" : " true "
}
pyenv
,然后将 Python 安装到您的环境中请参阅下面的详细说明。
有关更多详细信息,请查看扩展部分。
您可以在 CLI 上或通过 API 运行 Sparrow。要在 CLI 上运行,请使用sparrow.sh
脚本。从相应的虚拟环境运行它,具体取决于您要执行的代理。 sparrow-parse
代理使用 VL LLM 模型。 sparrow-parse
代理可以在本地使用 MLX、Ollama 或使用云 GPU 运行 VL LLM。 instructor
代理正在使用 Ollama 后端。确保使用 config.yml 中指定的名称拉取 Ollama 的 LLM 模型以运行instructor
代理。
config.yml 中有一个属性PROTECTED_ACCESS: False
。当设置为False
时, sparrow_key
不会在 API 调用时进行验证。否则,需要为 API 调用提供正确的sparrow-key
。
✅ Sparrow Parse 代理,在 Hugging Face 上带有 GPU 后端。 GPU 后端katanaml/sparrow-qwen2-vl-7b
是私有的,为了能够运行下面的命令,您需要使用 Sparrow Parse 的代码在 Hugging Face 空间上创建自己的后端。
./sparrow.sh "[{"instrument_name":"str", "valuation":0}]" --agent "sparrow-parse" --debug --options huggingface --options katanaml/sparrow-qwen2-vl-7b --file-path "/data/bonds_table.png"
回答:
{
"data" : [
{
"instrument_name" : " UNITS BLACKROCK FIX INC DUB FDS PLC ISHS EUR INV GRD CP BD IDX/INST/E " ,
"valuation" : 19049
},
{
"instrument_name" : " UNITS ISHARES III PLC CORE EUR GOVT BOND UCITS ETF/EUR " ,
"valuation" : 83488
},
{
"instrument_name" : " UNITS ISHARES III PLC EUR CORP BOND 1-5YR UCITS ETF/EUR " ,
"valuation" : 213030
},
{
"instrument_name" : " UNIT ISHARES VI PLC/JP MORGAN USD E BOND EUR HED UCITS ETF DIST/HDGD/ " ,
"valuation" : 32774
},
{
"instrument_name" : " UNITS XTRACKERS II SICAV/EUR HY CORP BOND UCITS ETF/-1D-/DISTR. " ,
"valuation" : 23643
}
],
"valid" : " true "
}
✅ Sparrow Parse Agent 支持多页 PDF 文档。运行专用 GPU 后端katanaml/sparrow-qwen2-vl-7b
的示例。您可以通过 API 端点传递 PDF 文档,响应将按页构建,并带有页码指示器:
./sparrow.sh "{"table": [{"description": "str", "latest_amount": 0, "previous_amount": 0}]}" --agent "sparrow-parse" --debug --options huggingface --options katanaml/sparrow-qwen2-vl-7b --file-path "/data/oracle_10k_2014_q1_small.pdf" --debug-dir "/data/"
答案示例:
[
{
"table" : [
{
"description" : " Revenues " ,
"latest_amount" : 12453 ,
"previous_amount" : 11445
},
{
"description" : " Operating expenses " ,
"latest_amount" : 9157 ,
"previous_amount" : 8822
}
],
"valid" : " true " ,
"page" : 1
},
{
"table" : [
{
"description" : " Revenues " ,
"latest_amount" : 12453 ,
"previous_amount" : 11445
},
{
"description" : " Operating expenses " ,
"latest_amount" : 9157 ,
"previous_amount" : 8822
}
],
"valid" : " true " ,
"page" : 2
}
]
✅ LLM 函数调用示例:
./sparrow.sh assistant --agent "stocks" --query "Oracle"
回答:
{
"company" : " Oracle Corporation " ,
"ticker" : " ORCL "
}
The stock price of the Oracle Corporation is 186.3699951171875. USD
Sparrow 使您能够使用 FastAPI 将本地 LLM RAG 作为 API 运行,从而提供一种方便高效的方式与我们的服务交互。您可以传递用于推理的插件的名称。默认情况下,使用sparrow-parse
代理。
要进行此设置:
通过在终端中执行以下命令来启动端点:
python api.py
如果你想同时从不同的Python虚拟环境运行代理,你可以指定端口,以避免冲突:
python api.py --port 8001
您可以通过导航至以下位置查看 API 的详细文档:
http://127.0.0.1:8000/api/v1/sparrow-llm/docs
作为视觉参考,FastAPI 端点的屏幕截图
✅ sparrow-parse
代理,该代理在 Hugging Face 上运行带有 GPU 后端的 Visual LLM。 GPU 后端katanaml/sparrow-qwen2-vl-7b
是私有的,为了能够运行下面的命令,您需要使用 Sparrow Parse 的代码在 Hugging Face 空间上创建自己的后端。
curl -X 'POST'
'http://127.0.0.1:8000/api/v1/sparrow-llm/inference'
-H 'accept: application/json'
-H 'Content-Type: multipart/form-data'
-F 'query=[{"instrument_name":"str","valuation":0}]'
-F 'agent=sparrow-parse'
-F 'options=huggingface,katanaml/sparrow-qwen2-vl-7b'
-F 'debug=false'
-F 'sparrow_key='
-F 'file=@bonds_table.png;type=image/png'
Sparrow Parse Agent 通过私有 GPU 后端katanaml/sparrow-qwen2-vl-7b
支持多页 PDF 文档。您可以通过 API 端点传递 PDF 文档,响应将按页构建,并带有页码指示器:
[
{
"table" : [
{
"description" : " Revenues " ,
"latest_amount" : 12453 ,
"previous_amount" : 11445
},
{
"description" : " Operating expenses " ,
"latest_amount" : 9157 ,
"previous_amount" : 8822
}
],
"valid" : " true " ,
"page" : 1
},
{
"table" : [
{
"description" : " Revenues " ,
"latest_amount" : 12453 ,
"previous_amount" : 11445
},
{
"description" : " Operating expenses " ,
"latest_amount" : 9157 ,
"previous_amount" : 8822
}
],
"valid" : " true " ,
"page" : 2
}
]
Sparrow 可在 GPL 3.0 许可证下使用,促进使用、修改和分发软件的自由,同时确保任何修改在同一许可证下保持开源。这符合我们支持开源社区和促进协作的承诺。
此外,我们认识到包括中小企业 (SME) 在内的组织的多样化需求。因此,Sparrow 还向过去 12 个月内总收入低于 500 万美元的组织提供免费商业用途,使他们能够利用 Sparrow,而无需承担通常与高质量软件解决方案相关的财务负担。
对于超过此收入阈值或需要 GPL 3.0 许可证未满足的使用条款的企业(例如将 Sparrow 集成到专有软件中而无需披露源代码修改的义务),我们提供双重许可选项。双重许可允许 Sparrow 在单独的专有许可下使用,为商业应用和专有集成提供更大的灵活性。该模型支持项目的可持续性以及业务对机密性和定制的需求。
如果您的组织正在寻求在专有许可下使用 Sparrow,或者您对自定义工作流程、咨询服务或专用支持和维护选项感兴趣,请通过 [email protected] 与我们联系。我们随时提供满足您独特需求的定制解决方案,确保您能够最大限度地发挥 Sparrow 对您的项目和工作流程的优势。
卡塔纳 ML,安德烈·巴拉诺夫斯基
根据 GPL 3.0 许可。版权所有 2020-2024 Katana ML,Andrej Baranovskij。许可证副本。