Showing posts with label Sparrow. Show all posts
Showing posts with label Sparrow. Show all posts
Monday, August 10, 2026
Bigger Isn't Always Better: Gemma 31B vs Ministral 14B on a Pivot Table
More parameters doesn't automatically mean better extraction.
Same insurance pivot table as the last video, same generic "*" query, no schema, but this time run through Sparrow's Advanced mode, backed by Gemma 4 31B Dense, instead of Standard mode Ministral 14B.
Result: Gemma 4 31B, despite being over twice the size, was less accurate on this pivot table than Ministral 14B was. It hallucinated on column values — assigning null to cells that had real values, then shifting the actual value into the next column instead. A column-alignment failure Ministral 14B didn't have.
The takeaway: model size isn't a proxy for fit. Structured extraction on dense tabular layouts seems to favor whatever model was better tuned for structure-following, not the model with more parameters. Worth testing both tiers against your actual documents before assuming "Advanced" means "more accurate."
Wednesday, July 8, 2026
Mistral OCR 4 + Sparrow: Document to JSON
Follow-up to the Mistral OCR + Sparrow integration video. Mistral released OCR 4 — the latest model with improved accuracy, native bounding box extraction, and structural block labels. One model string change in Sparrow to pick it up.
In this video, extracting a long financial statement table into structured JSON using Mistral OCR 4 + Mistral Small 4.
Sparrow is open source and local-first by design — documents never leave your infrastructure unless you choose the cloud backend.
Monday, June 29, 2026
Building an AI Agent That Searches the Web and Makes Investment Decisions
In this video I build a local agentic AI pipeline that analyzes a bond portfolio and makes sell/hold decisions based on risk analysis and live web search data.
The agent runs four steps: load portfolio positions from JSON, classify each position as low/medium/high risk, search the web per position via Tavily API for historical performance and current outlook, then make a final sell/hold decision with reasoning — all powered by Gemma 4 31B running locally on Apple Silicon via mlx-vlm. No data leaves your machine.
All steps orchestrated with Prefect.
🔗 GitHub: https://github.com/katanaml/sparrow
🌐 Live: https://sparrow.katanaml.io
📧 Enterprise inquiries: abaranovskis@redsamuraiconsulting.com
Labels:
Agentic AI,
Sparrow
Wednesday, June 24, 2026
Mistral OCR + Sparrow: Document to JSON
Integrated Mistral OCR as a new cloud inference backend into Sparrow, an open-source document extraction platform. This gives Sparrow a full cloud option alongside its existing local backends (MLX, vLLM), so users without GPU infrastructure can still run enterprise-grade document extraction.
Pipeline: Mistral OCR converts the document to structured HTML, then Mistral Small extracts and transforms the data into JSON based on a defined schema with field-level hints.
In this video, extracting a bonds portfolio table with hint-driven rules:
Sparrow is open source and local-first by design — documents never leave your infrastructure unless you choose the cloud backend.
⭐ GitHub: github.com/katanaml/sparrow
🌐 Live demo: sparrow.katanaml.io
Pipeline: Mistral OCR converts the document to structured HTML, then Mistral Small extracts and transforms the data into JSON based on a defined schema with field-level hints.
In this video, extracting a bonds portfolio table with hint-driven rules:
- Instrument name normalization (extracting issuer brand from full fund names)
- European number formatting (period as thousands separator, comma as decimal)
- Percentage formatting with sign preservation
- Derived risk classification computed from profit/loss percentage
Sparrow is open source and local-first by design — documents never leave your infrastructure unless you choose the cloud backend.
⭐ GitHub: github.com/katanaml/sparrow
🌐 Live demo: sparrow.katanaml.io
Monday, June 15, 2026
Sparrow 0.6.0: New Production-Ready UI for Local Document AI
Sparrow just got a complete UI overhaul — rebuilt from the ground up with Next.js and shadcn for a production-grade experience.
What's new in this release:
- Faster document upload and extraction workflow
- Real-time analytics dashboard with usage metrics, model distribution, and geographical reach
- Built-in feedback collection
- Dark mode support
Fully responsive mobile layout
Sparrow remains fully local — your documents are processed on-device with Vision LLMs, with nothing stored on disk and no cloud dependencies.
Wednesday, June 10, 2026
Gemma 4 12B vs Ministral 14B: Who Wins at Structured Table Extraction?
Head-to-head test: Gemma 4 12B vs Ministral 14B on structured table extraction.
In this video, I run a head-to-head test: Gemma 4 12B (8-bit and bf16) vs Ministral 14B (8-bit), extracting data from a 5-row table — two columns, JSON schema, array output.
Results:
- Gemma 4 12B (both quantizations): fails to return a proper JSON array
- Ministral 14B 8-bit: extracts all rows correctly
Monday, June 1, 2026
Building Agentic AI Pipelines for Document Analysis
In this video, I show how to build a local agentic AI pipeline using Sparrow to extract and analyze data from financial documents.
The agent runs two steps:
- Extract structured data from a bonds table image using Sparrow Parse pipeline and Ministral 3B 14B model
- Analyze portfolio risk using Sparrow Instructor pipeline and Gemma 4 31B model — classifying each position as low, medium, or high risk
Both steps run as Prefect tasks inside a single flow, fully locally — no data leaves your machine.
Labels:
Agentic AI,
Python,
Sparrow
Monday, May 18, 2026
Instruction-Based Data Analysis with Sparrow and Local LLM
In this video, I show how to use Sparrow instruction processing pipeline to analyze a bond portfolio JSON extracted from a financial document — all running locally, no external APIs.
I run three different analysis cases using Gemma 4 31B on Apple Silicon Mac Mini M4 Pro:
- Risk classification — categorize each position into low, medium, or high risk based on loss percentage
- Concentration risk — flag overweight positions above 20% portfolio weighting
- Portfolio aggregation — total valuation, weighted average P&L, best and worst performer
All three cases use the same sparrow-instructor pipeline, demonstrating how different instruction types — classification, rule-based flagging, and aggregation — are handled by a single local LLM.
Labels:
Instructor,
LLM,
Sparrow
Monday, May 11, 2026
Smart Document Extraction with Business Rules — Gemma vs Qwen vs Ministral
In this video I show how Sparrow hints work — a powerful feature that goes beyond simple field extraction. Using a bank bonds portfolio document, I demonstrate how to define business rules directly in the hints file: formatting rules for European number standards, short name normalization, and risk classification logic derived from extracted fields. I test the same hints across three local vision models — Gemma 4 31B Dense, Qwen 3.6 27B Dense, and Ministral 3 14B. All processing runs locally with no cloud dependencies.
Labels:
DocumentAI,
Sparrow
Monday, May 4, 2026
Large Table Extraction to JSON with dots.ocr — No Vision LLM Hallucinations
Sparrow now supports a dedicated table mode for extracting large, complex tables into structured JSON — without Vision LLM hallucinations.
Vision LLMs struggle with dense tabular data: they hallucinate values, misalign rows, and lose precision at scale. Sparrow's table mode solves this by using dots.ocr to capture the full table structure as HTML, then applying a generic Sparrow template to convert that HTML into clean, structured JSON.
Thursday, March 12, 2026
Fast Large Table Extraction: Sparrow + dots.ocr to JSON
Sparrow provides table processing mode. It is optimized to handle large tables, it comes with separate template script (new templates can be easily added) to process dots.ocr markdown output into structure JSON with field mapping.
Wednesday, March 4, 2026
Local OCR Comparison: dots.ocr More Accurate, DeepSeek-OCR 2 Faster (Sparrow + MLX)
I run local tests with Sparrow to compare DeepSeek OCR2 and dots.ocr (by RedNote), both run on MLX-VLM in FP16 precision. Dots.ocr consistently beats DeepSeek OCR2 in accuracy, but DeepSeek OCR2 deliveres much better inference performance.
Tuesday, January 27, 2026
Vision LLM Output Control for Better OCR with Prompt Hints
I explain my approach to enforce better OCR output from vision LLMs with prompt hints. This allows to set rules for output data validation and formatting.
Thursday, January 22, 2026
DeepSeek OCR Markdown Processing in Sparrow for Large Tables
I describe new functionality in Sparrow, where DeepSeek OCR is used to extract text data in markdown format and in the next step instruction LLM inference is utilized to convert data into structured JSON format. This approach helps to improve large table processing and avoid vision LLM hallucinations.
Friday, October 10, 2025
Ollama Support in Sparrow and Update to Latest MLX
I explain whats new in Sparrow and what was updated in the recent version.
Tuesday, September 16, 2025
Ollama vs MLX Inference Speed on Mac Mini M4 Pro 64GB
MLX runs faster on first inference, but thanks to model caching or other optimizations by Ollama, second and next inference runs faster on Ollama.
Labels:
Sparrow,
Structured Data,
vLLM
Wednesday, July 23, 2025
PaddleOCR 3.1 Setup in FastAPI
I explain how to run PaddleOCR 3.1 from FastAPI app.
Monday, July 14, 2025
Structured Data Query with Sparrow AI Agent
Sparrow comes with option to extract stuctured data with query. In this video I explain how you can define such query to fetch array and field data.
Tuesday, July 8, 2025
Vision LLM with MLX: Extracting Electric Meter Data in Production
In this video, I share my experience using the MLX backend to run Vision LLM (with MLX-VLM) for structured data extraction in a production environment. See how I used Sparrow to accurately read electric meter data and learn practical tips for deploying similar solutions.
Monday, May 5, 2025
Local LLM Instruction Processing with Sparrow
I explain how to execute instructions with a payload using a local LLM. This is useful when you want to process your data with an LLM and provide contextual instructions, specifying the desired outcome of what needs to be achieved.
Subscribe to:
Posts (Atom)