Datenverarbeitung mit ML, LLM und Vision LLM
Sparrow ist eine innovative Open-Source-Lösung zur effizienten Datenextraktion und -verarbeitung aus verschiedenen Dokumenten und Bildern. Es verarbeitet nahtlos Formulare, Rechnungen, Quittungen und andere unstrukturierte Datenquellen. Sparrow zeichnet sich durch seine modulare Architektur aus und bietet unabhängige Dienste und Agenten, die alle für eine robuste Leistung optimiert sind. Eine der entscheidenden Funktionen von Sparrow ist die steckbare Architektur. Sie können Datenextraktionspipelines einfach integrieren und ausführen, indem Sie Tools und Frameworks wie Sparrow Parse (mit Unterstützung für Vision-Language-Modelle) oder Instructor mit Unstructured verwenden. Sparrow ermöglicht lokale LLM-Datenextraktionspipelines über verschiedene Backends wie vLLM, Ollama, PyTorch oder Apple MLX. Sparrow Parse mit VL-Modell kann entweder vor Ort ausgeführt werden oder Inferenzen auf einer Cloud-GPU ausführen. Mit der Sparrow-Lösung erhalten Sie eine API, die Sie bei der Verarbeitung und Umwandlung Ihrer Daten in eine strukturierte Ausgabe unterstützt, die für die Integration in benutzerdefinierte Workflows bereit ist.
Sparrow-Agenten – mit Sparrow können Sie unabhängige LLM-Agenten erstellen und diese mithilfe der API von Ihrem System aus aufrufen.
Probieren Sie die Sparrow UI-Shell-App aus
{
"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
und dann Python in Ihrer UmgebungDetaillierte Anweisungen finden Sie weiter unten.
Weitere Einzelheiten finden Sie im erweiterten Abschnitt.
Sie können Sparrow über die CLI oder über die API ausführen. Verwenden Sie zum Ausführen auf der CLI das Skript sparrow.sh
. Führen Sie es in der entsprechenden virtuellen Umgebung aus, je nachdem, welchen Agenten Sie ausführen möchten. sparrow-parse
Agent verwendet das VL-LLM-Modell. sparrow-parse
Agent führt VL LLM entweder lokal mit MLX, Ollama oder mithilfe einer Cloud-GPU aus. instructor
verwendet das Ollama-Backend. Stellen Sie sicher, dass Sie das LLM-Modell für Ollama unter Verwendung des in config.yml angegebenen Namens abrufen, um instructor
Agent auszuführen.
Es gibt eine Eigenschaft PROTECTED_ACCESS: False
in config.yml. Bei Festlegung auf False
wird sparrow_key
beim API-Aufruf nicht überprüft. Andernfalls muss für den API-Aufruf der richtige sparrow-key
angegeben werden.
✅ Sparrow Parse-Agent mit GPU-Backend auf Hugging Face. Das GPU-Backend katanaml/sparrow-qwen2-vl-7b
ist privat. Um den folgenden Befehl ausführen zu können, müssen Sie Ihr eigenes Backend im Hugging Face-Bereich mit Code von Sparrow Parse erstellen.
./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"
Antwort:
{
"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 unterstützt mehrseitige PDF-Dokumente. Beispiel für die Ausführung eines privaten GPU-Backends katanaml/sparrow-qwen2-vl-7b
. Sie können ein PDF-Dokument über den API-Endpunkt weiterleiten. Die Antwort wird pro Seite mit Seitenzahlindikatoren strukturiert:
./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/"
Beispielantwort:
[
{
"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
}
]
✅ Beispiel für einen LLM-Funktionsaufruf:
./sparrow.sh assistant --agent "stocks" --query "Oracle"
Antwort:
{
"company" : " Oracle Corporation " ,
"ticker" : " ORCL "
}
The stock price of the Oracle Corporation is 186.3699951171875. USD
Mit Sparrow können Sie mithilfe von FastAPI ein lokales LLM-RAG als API ausführen und so bequem und effizient mit unseren Diensten interagieren. Sie können den Namen des Plugins übergeben, das für die Inferenz verwendet werden soll. Standardmäßig wird sparrow-parse
Agent verwendet.
So richten Sie dies ein:
Starten Sie den Endpunkt, indem Sie den folgenden Befehl in Ihrem Terminal ausführen:
python api.py
Wenn Sie Agenten aus verschiedenen virtuellen Python-Umgebungen gleichzeitig ausführen möchten, können Sie einen Port angeben, um Konflikte zu vermeiden:
python api.py --port 8001
Sie können eine detaillierte Dokumentation für die API anzeigen, indem Sie zu folgender Adresse navigieren:
http://127.0.0.1:8000/api/v1/sparrow-llm/docs
Zur visuellen Referenz ein Screenshot des FastAPI-Endpunkts
✅ sparrow-parse
Agent, dieser Agent führt Visual LLM mit GPU-Backend auf Hugging Face aus. Das GPU-Backend katanaml/sparrow-qwen2-vl-7b
ist privat. Um den folgenden Befehl ausführen zu können, müssen Sie Ihr eigenes Backend im Hugging Face-Bereich mit Code von Sparrow Parse erstellen.
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 unterstützt mehrseitige PDF-Dokumente mit dem privaten GPU-Backend katanaml/sparrow-qwen2-vl-7b
. Sie können ein PDF-Dokument über den API-Endpunkt weiterleiten. Die Antwort wird pro Seite mit Seitenzahlindikatoren strukturiert:
[
{
"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 ist unter der GPL 3.0-Lizenz verfügbar, was die Freiheit zur Nutzung, Änderung und Verbreitung der Software fördert und gleichzeitig sicherstellt, dass alle Änderungen Open Source unter derselben Lizenz bleiben. Dies steht im Einklang mit unserem Engagement, die Open-Source-Community zu unterstützen und die Zusammenarbeit zu fördern.
Darüber hinaus sind wir uns der unterschiedlichen Bedürfnisse von Organisationen bewusst, darunter auch kleinen und mittleren Unternehmen (KMU). Daher wird Sparrow auch Organisationen mit einem Bruttoumsatz von weniger als 5 Millionen US-Dollar in den letzten 12 Monaten zur kostenlosen kommerziellen Nutzung angeboten, sodass sie Sparrow ohne die finanzielle Belastung nutzen können, die oft mit hochwertigen Softwarelösungen verbunden ist.
Für Unternehmen, die diese Umsatzschwelle überschreiten oder Nutzungsbedingungen benötigen, die nicht in der GPL 3.0-Lizenz enthalten sind – wie z. B. die Integration von Sparrow in proprietäre Software ohne die Verpflichtung, Änderungen am Quellcode offenzulegen – bieten wir Optionen für die Doppellizenzierung an. Durch die Doppellizenzierung kann Sparrow unter einer separaten proprietären Lizenz verwendet werden, was eine größere Flexibilität für kommerzielle Anwendungen und proprietäre Integrationen bietet. Dieses Modell unterstützt sowohl die Nachhaltigkeit des Projekts als auch die Anforderungen des Unternehmens an Vertraulichkeit und Anpassung.
Wenn Ihre Organisation Sparrow unter einer proprietären Lizenz nutzen möchte oder an benutzerdefinierten Arbeitsabläufen, Beratungsdiensten oder speziellen Support- und Wartungsoptionen interessiert ist, kontaktieren Sie uns bitte unter [email protected]. Wir sind hier, um maßgeschneiderte Lösungen bereitzustellen, die Ihren individuellen Anforderungen entsprechen und sicherstellen, dass Sie die Vorteile von Sparrow für Ihre Projekte und Arbeitsabläufe maximieren können.
Katana ML, Andrej Baranovskij
Lizenziert unter der GPL 3.0. Copyright 2020-2024 Katana ML, Andrej Baranovskij. Kopie der Lizenz.