Procesamiento de datos con ML, LLM y Vision LLM
Sparrow es una solución innovadora de código abierto para la extracción y el procesamiento eficiente de datos a partir de diversos documentos e imágenes. Maneja sin problemas formularios, facturas, recibos y otras fuentes de datos no estructurados. Sparrow se destaca por su arquitectura modular, que ofrece agentes y servicios independientes, todos optimizados para un rendimiento sólido. Una de las funcionalidades críticas de Sparrow: la arquitectura conectable. Puede integrar y ejecutar fácilmente canales de extracción de datos utilizando herramientas y marcos como Sparrow Parse (con soporte para modelos de lenguaje de visión) o Instructor con Unstructured. Sparrow habilita canales de extracción de datos LLM locales a través de varios backends, como vLLM, Ollama, PyTorch o Apple MLX. Sparrow Parse con modelo VL puede ejecutarse localmente o puede ejecutar inferencia en la GPU de la nube. Con la solución Sparrow obtienes API, que ayuda a procesar y transformar tus datos en resultados estructurados, listos para integrarse con flujos de trabajo personalizados.
Agentes Sparrow: con Sparrow puede crear agentes LLM independientes y utilizar API para invocarlos desde su sistema.
Pruebe la aplicación de 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
y luego instale Python en su entornoConsulte las instrucciones detalladas a continuación.
Para obtener más detalles, consulte la sección ampliada.
Puede ejecutar Sparrow en CLI o mediante API. Para ejecutar en CLI, utilice el script sparrow.sh
. Ejecútelo desde el entorno virtual correspondiente, según el agente que desee ejecutar. El agente sparrow-parse
está utilizando el modelo VL LLM. El agente sparrow-parse
ejecuta VL LLM ya sea localmente con MLX, Ollama o usando GPU en la nube. El agente instructor
está utilizando el backend de Ollama. Asegúrese de obtener el modelo LLM para Ollama usando el nombre especificado en config.yml para ejecutar el agente instructor
.
Hay una propiedad PROTECTED_ACCESS: False
en config.yml. Cuando se establece en False
, sparrow_key
no se verifica en la llamada API. De lo contrario, se debe proporcionar sparrow-key
correcta para la llamada a la API.
✅ Agente Sparrow Parse, con backend de GPU en Hugging Face. El backend de GPU katanaml/sparrow-qwen2-vl-7b
es privado, para poder ejecutar el siguiente comando, debe crear su propio backend en el espacio Hugging Face usando el código de 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"
Respuesta:
{
"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 admite documentos PDF de varias páginas. Ejemplo ejecutando el backend privado de GPU katanaml/sparrow-qwen2-vl-7b
. Puede pasar un documento PDF a través del punto final de API; la respuesta se estructurará por página con 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/"
Respuesta de muestra:
[
{
"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
}
]
✅ Ejemplo de llamada a función LLM:
./sparrow.sh assistant --agent "stocks" --query "Oracle"
Respuesta:
{
"company" : " Oracle Corporation " ,
"ticker" : " ORCL "
}
The stock price of the Oracle Corporation is 186.3699951171875. USD
Sparrow le permite ejecutar un LLM RAG local como API utilizando FastAPI, lo que proporciona una forma conveniente y eficiente de interactuar con nuestros servicios. Puede pasar el nombre del complemento que se utilizará para la inferencia. De forma predeterminada, se utiliza el agente sparrow-parse
.
Para configurar esto:
Inicie el punto final ejecutando el siguiente comando en su terminal:
python api.py
Si desea ejecutar agentes desde diferentes entornos virtuales de Python simultáneamente, puede especificar el puerto para evitar conflictos:
python api.py --port 8001
Puede ver documentación detallada de la API navegando a:
http://127.0.0.1:8000/api/v1/sparrow-llm/docs
Como referencia visual, una captura de pantalla del punto final FastAPI
✅ agente sparrow-parse
, este agente ejecuta Visual LLM con backend de GPU en Hugging Face. El backend de GPU katanaml/sparrow-qwen2-vl-7b
es privado, para poder ejecutar el siguiente comando, debe crear su propio backend en el espacio Hugging Face usando el código de 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 admite documentos PDF de varias páginas con backend de GPU privado katanaml/sparrow-qwen2-vl-7b
. Puede pasar un documento PDF a través del punto final de API; la respuesta se estructurará por página con 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á disponible bajo la licencia GPL 3.0, lo que promueve la libertad de usar, modificar y distribuir el software y, al mismo tiempo, garantiza que cualquier modificación permanezca como código abierto bajo la misma licencia. Esto se alinea con nuestro compromiso de apoyar a la comunidad de código abierto y fomentar la colaboración.
Además, reconocemos las diversas necesidades de las organizaciones, incluidas las pequeñas y medianas empresas (PYME). Por lo tanto, Sparrow también se ofrece para uso comercial gratuito a organizaciones con ingresos brutos inferiores a 5 millones de dólares en los últimos 12 meses, lo que les permite aprovechar Sparrow sin la carga financiera que a menudo se asocia con soluciones de software de alta calidad.
Para las empresas que superan este umbral de ingresos o requieren términos de uso que no se ajustan a la licencia GPL 3.0, como la integración de Sparrow en software propietario sin la obligación de revelar modificaciones del código fuente, ofrecemos opciones de licencia dual. La licencia dual permite utilizar Sparrow bajo una licencia propietaria separada, lo que ofrece mayor flexibilidad para aplicaciones comerciales e integraciones propietarias. Este modelo respalda tanto la sostenibilidad del proyecto como las necesidades de confidencialidad y personalización del negocio.
Si su organización busca utilizar Sparrow bajo una licencia patentada, o si está interesado en flujos de trabajo personalizados, servicios de consultoría u opciones de soporte y mantenimiento dedicados, contáctenos en [email protected]. Estamos aquí para brindarle soluciones personalizadas que cumplan con sus requisitos únicos, garantizando que pueda maximizar los beneficios de Sparrow para sus proyectos y flujos de trabajo.
Katana ML, Andrej Baranovskij
Licenciado bajo la GPL 3.0. Copyright 2020-2024 Katana ML, Andrej Baranovskij. Copia de la licencia.