Processamento de dados com ML, LLM e Vision LLM
Sparrow é uma solução inovadora de código aberto para extração e processamento eficiente de dados de vários documentos e imagens. Ele lida perfeitamente com formulários, faturas, recibos e outras fontes de dados não estruturados. Sparrow se destaca por sua arquitetura modular, oferecendo serviços e agentes independentes, todos otimizados para um desempenho robusto. Uma das funcionalidades críticas do Sparrow é a arquitetura conectável. Você pode integrar e executar facilmente pipelines de extração de dados usando ferramentas e estruturas como Sparrow Parse (com suporte a modelos de linguagem de visão) ou Instructor with Unstructured. Sparrow permite pipelines locais de extração de dados LLM por meio de vários back-ends, como vLLM, Ollama, PyTorch ou Apple MLX. O modelo Sparrow Parse com VL pode ser executado no local ou pode executar inferência na GPU da nuvem. Com a solução Sparrow você obtém API, que ajuda a processar e transformar seus dados em saída estruturada, pronta para ser integrada a fluxos de trabalho personalizados.
Agentes Sparrow - com Sparrow você pode construir agentes LLM independentes e usar API para invocá-los em seu sistema.
Experimente o aplicativo shell Sparrow UI
{
"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
e depois instale o Python em seu ambienteVeja instruções detalhadas abaixo.
Para mais detalhes, confira a seção estendida.
Você pode executar o Sparrow na CLI ou por meio da API. Para executar na CLI, use o script sparrow.sh
. Execute-o no ambiente virtual correspondente, dependendo de qual agente você deseja executar. O agente sparrow-parse
está usando o modelo VL LLM. O agente sparrow-parse
executa VL LLM localmente com MLX, Ollama ou usando GPU em nuvem. o agente instructor
está usando o backend do Ollama. Certifique-se de extrair o modelo LLM para Ollama usando o nome especificado em config.yml para executar o agente instructor
.
Existe uma propriedade PROTECTED_ACCESS: False
em config.yml. Quando definido como False
, sparrow_key
não é verificado na chamada de API. Caso contrário, sparrow-key
correta precisa ser fornecida para chamada de API.
✅ Agente Sparrow Parse, com backend de GPU no Hugging Face. O backend da GPU katanaml/sparrow-qwen2-vl-7b
é privado, para poder executar o comando abaixo, você precisa criar seu próprio backend no espaço Hugging Face usando o código do Sparrow Parse.
./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"
Responder:
{
"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 oferece suporte a documentos PDF de várias páginas. Exemplo de execução de back-end de GPU privado katanaml/sparrow-qwen2-vl-7b
. Você pode passar o documento PDF através do endpoint da API, a resposta será estruturada por página com indicadores de número de página:
./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/"
Exemplo de resposta:
[
{
"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
}
]
✅ Exemplo de chamada de função LLM:
./sparrow.sh assistant --agent "stocks" --query "Oracle"
Responder:
{
"company" : " Oracle Corporation " ,
"ticker" : " ORCL "
}
The stock price of the Oracle Corporation is 186.3699951171875. USD
Sparrow permite que você execute um LLM RAG local como uma API usando FastAPI, fornecendo uma maneira conveniente e eficiente de interagir com nossos serviços. Você pode passar o nome do plugin a ser utilizado para a inferência. Por padrão, o agente sparrow-parse
é usado.
Para configurar isso:
Inicie o endpoint executando o seguinte comando em seu terminal:
python api.py
Se quiser executar agentes de diferentes ambientes virtuais Python simultaneamente, você pode especificar a porta para evitar conflitos:
python api.py --port 8001
Você pode visualizar a documentação detalhada da API navegando até:
http://127.0.0.1:8000/api/v1/sparrow-llm/docs
Para referência visual, uma captura de tela do endpoint FastAPI
✅ agente de sparrow-parse
, este agente executa Visual LLM com back-end de GPU no Hugging Face. O backend da GPU katanaml/sparrow-qwen2-vl-7b
é privado, para poder executar o comando abaixo, você precisa criar seu próprio backend no espaço Hugging Face usando o código do Sparrow Parse.
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 oferece suporte a documentos PDF de várias páginas com back-end de GPU privado katanaml/sparrow-qwen2-vl-7b
. Você pode passar o documento PDF através do endpoint da API, a resposta será estruturada por página com indicadores de número de página:
[
{
"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 está disponível sob a licença GPL 3.0, promovendo a liberdade de usar, modificar e distribuir o software, garantindo ao mesmo tempo que quaisquer modificações permaneçam de código aberto sob a mesma licença. Isso se alinha ao nosso compromisso de apoiar a comunidade de código aberto e promover a colaboração.
Além disso, reconhecemos as diversas necessidades das organizações, incluindo pequenas e médias empresas (PME). Portanto, o Sparrow também é oferecido para uso comercial gratuito a organizações com receita bruta inferior a US$ 5 milhões nos últimos 12 meses, permitindo-lhes aproveitar o Sparrow sem os encargos financeiros frequentemente associados a soluções de software de alta qualidade.
Para empresas que excedem esse limite de receita ou exigem termos de uso não incluídos na licença GPL 3.0 – como a integração do Sparrow em software proprietário sem a obrigação de divulgar modificações no código-fonte – oferecemos opções de licenciamento duplo. O licenciamento duplo permite que o Sparrow seja usado sob uma licença proprietária separada, oferecendo maior flexibilidade para aplicações comerciais e integrações proprietárias. Este modelo apoia tanto a sustentabilidade do projeto quanto as necessidades de confidencialidade e customização do negócio.
Se sua organização deseja utilizar o Sparrow sob uma licença proprietária ou se você estiver interessado em fluxos de trabalho personalizados, serviços de consultoria ou opções dedicadas de suporte e manutenção, entre em contato conosco em [email protected]. Estamos aqui para fornecer soluções personalizadas que atendam às suas necessidades exclusivas, garantindo que você possa maximizar os benefícios do Sparrow para seus projetos e fluxos de trabalho.
Katana ML, Andrej Baranovskij
Licenciado sob a GPL 3.0. Copyright 2020-2024 Katana ML, Andrej Baranovskij. Cópia da licença.