Traitement des données avec ML, LLM et Vision LLM
Sparrow est une solution open source innovante pour l'extraction et le traitement efficaces de données à partir de divers documents et images. Il gère de manière transparente les formulaires, les factures, les reçus et autres sources de données non structurées. Sparrow se démarque par son architecture modulaire, offrant des services et des agents indépendants tous optimisés pour des performances robustes. L'une des fonctionnalités critiques de Sparrow est l'architecture enfichable. Vous pouvez facilement intégrer et exécuter des pipelines d'extraction de données à l'aide d'outils et de frameworks tels que Sparrow Parse (avec prise en charge des modèles de langage de vision) ou Instructor avec Unstructured. Sparrow active des pipelines d'extraction de données LLM locaux via divers backends, tels que vLLM, Ollama, PyTorch ou Apple MLX. Sparrow Parse avec le modèle VL peut s'exécuter soit sur site, soit exécuter une inférence sur un GPU cloud. Avec la solution Sparrow, vous bénéficiez d'une API qui vous aide à traiter et à transformer vos données en sortie structurée, prête à être intégrée à des flux de travail personnalisés.
Agents Sparrow - avec Sparrow, vous pouvez créer des agents LLM indépendants et utiliser l'API pour les appeler depuis votre système.
Essayez l'application 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
puis installez Python dans votre environnementVoir les instructions détaillées ci-dessous.
Pour plus de détails, consultez la section étendue.
Vous pouvez exécuter Sparrow sur CLI ou via l'API. Pour exécuter sur CLI, utilisez le script sparrow.sh
. Exécutez-le à partir de l'environnement virtuel correspondant, en fonction de l'agent que vous souhaitez exécuter. L'agent sparrow-parse
utilise le modèle VL LLM. L'agent sparrow-parse
exécute VL LLM soit localement avec MLX, Ollama ou à l'aide d'un GPU cloud. L'agent instructor
utilise le backend Ollama. Assurez-vous d'extraire le modèle LLM pour Ollama en utilisant le nom spécifié dans config.yml pour exécuter l'agent instructor
.
Il existe une propriété PROTECTED_ACCESS: False
dans config.yml. Lorsqu'il est défini sur False
, sparrow_key
n'est pas vérifié lors de l'appel API. Sinon, sparrow-key
correcte doit être fournie pour l'appel API.
✅ Agent Sparrow Parse, avec backend GPU sur Hugging Face. Le backend GPU katanaml/sparrow-qwen2-vl-7b
est privé, pour pouvoir exécuter la commande ci-dessous, vous devez créer votre propre backend sur l'espace Hugging Face en utilisant le code 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"
Répondre:
{
"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 prend en charge les documents PDF de plusieurs pages. Exemple d'exécution d'un backend GPU privé katanaml/sparrow-qwen2-vl-7b
. Vous pouvez transmettre un document PDF via le point de terminaison de l'API, la réponse sera structurée par page avec des indicateurs de numéro de page :
./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/"
Exemple de réponse :
[
{
"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
}
]
✅ Exemple d'appel de fonction LLM :
./sparrow.sh assistant --agent "stocks" --query "Oracle"
Répondre:
{
"company" : " Oracle Corporation " ,
"ticker" : " ORCL "
}
The stock price of the Oracle Corporation is 186.3699951171875. USD
Sparrow vous permet d'exécuter un LLM RAG local en tant qu'API à l'aide de FastAPI, offrant ainsi un moyen pratique et efficace d'interagir avec nos services. Vous pouvez transmettre le nom du plugin à utiliser pour l'inférence. Par défaut, l'agent sparrow-parse
est utilisé.
Pour configurer cela :
Lancez le point de terminaison en exécutant la commande suivante dans votre terminal :
python api.py
Si vous souhaitez exécuter simultanément des agents de différents environnements virtuels Python, vous pouvez spécifier le port pour éviter les conflits :
python api.py --port 8001
Vous pouvez consulter la documentation détaillée de l'API en accédant à :
http://127.0.0.1:8000/api/v1/sparrow-llm/docs
Pour référence visuelle, une capture d'écran du point de terminaison FastAPI
✅ agent sparrow-parse
, cet agent exécute Visual LLM avec un backend GPU sur Hugging Face. Le backend GPU katanaml/sparrow-qwen2-vl-7b
est privé, pour pouvoir exécuter la commande ci-dessous, vous devez créer votre propre backend sur l'espace Hugging Face en utilisant le code 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 prend en charge les documents PDF de plusieurs pages avec un backend GPU privé katanaml/sparrow-qwen2-vl-7b
. Vous pouvez transmettre un document PDF via le point de terminaison de l'API, la réponse sera structurée par page avec des indicateurs de numéro de page :
[
{
"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 sous la licence GPL 3.0, favorisant la liberté d'utilisation, de modification et de distribution du logiciel tout en garantissant que toutes les modifications restent open source sous la même licence. Cela correspond à notre engagement à soutenir la communauté open source et à favoriser la collaboration.
De plus, nous reconnaissons les divers besoins des organisations, y compris les petites et moyennes entreprises (PME). Par conséquent, Sparrow est également proposé pour une utilisation commerciale gratuite aux organisations dont le chiffre d'affaires brut est inférieur à 5 millions de dollars américains au cours des 12 derniers mois, leur permettant ainsi d'exploiter Sparrow sans le fardeau financier souvent associé aux solutions logicielles de haute qualité.
Pour les entreprises qui dépassent ce seuil de revenus ou qui nécessitent des conditions d'utilisation non prises en charge par la licence GPL 3.0, comme l'intégration de Sparrow dans un logiciel propriétaire sans obligation de divulguer les modifications du code source, nous proposons des options de double licence. La double licence permet à Sparrow d'être utilisé sous une licence propriétaire distincte, offrant une plus grande flexibilité pour les applications commerciales et les intégrations propriétaires. Ce modèle soutient à la fois la durabilité du projet et les besoins de confidentialité et de personnalisation de l'entreprise.
Si votre organisation cherche à utiliser Sparrow sous une licence propriétaire, ou si vous êtes intéressé par des flux de travail personnalisés, des services de conseil ou des options de support et de maintenance dédiées, veuillez nous contacter à [email protected]. Nous sommes là pour fournir des solutions sur mesure qui répondent à vos exigences uniques, vous garantissant ainsi de maximiser les avantages de Sparrow pour vos projets et flux de travail.
Katana ML, Andrej Baranovskij
Sous licence GPL 3.0. Copyright 2020-2024 Katana ML, Andrej Baranovskij. Copie de la licence.