A newer version of the Gradio SDK is available: 6.22.0
metadata
title: OmniParse AI
emoji: ''
colorFrom: teal
colorTo: orange
sdk: gradio
sdk_version: 5.49.1
app_file: server.py
pinned: false
OmniParse AI — Intelligent Invoice Processing
AI-powered invoice data extraction from PDFs and images. Built with gradio.Server (FastAPI) backend and a custom HTML/CSS/JS frontend.
Features
- OCR + LLM Pipeline: Tesseract OCR combined with Groq Llama 3.1 for 99.2% accuracy
- Multi-format: PDF, JPG, PNG, TIFF — 40+ formats supported
- Duplicate Detection: Automatic catch of duplicate payments (Pro+)
- AI Chat Agent: Natural language queries on your invoices (Pro+)
- Cross-field Validation: Automatic verification, subtotals, dates, VAT rates
- Export: CSV (all plans), JSON (Basic+), Excel coming soon
- REST API: Direct ERP integration (Pro+)
- EU Data Storage: GDPR-compliant, Frankfurt region
Quick Start
Demo account: demo@omniparse.ai / Demo@12345! (Pro plan, all features unlocked)
Architecture
omniparse/
├── server.py # gradio.Server (FastAPI) — entry point
├── config.py # Environment config & secrets
├── database.py # SQLite + optional Supabase data layer
├── auth.py # bcrypt auth, HttpOnly session cookies
├── ocr.py # Multi-engine OCR pipeline
├── ai_extraction.py # LLM extraction + server-side validation
├── middleware.py # Rate limiting, security headers, webhook verify
├── requirements.txt # Python dependencies
├── packages.txt # System packages
└── static/
├── index.html # SPA frontend
├── css/style.css # "Midnight Teal + Copper" design system
└── js/
├── app.js # Full frontend logic
└── icons.js # SVG icon library (no emojis)
Security
| Layer | Implementation |
|---|---|
| Passwords | bcrypt, 12 rounds + HIBP breach check |
| Sessions | HttpOnly / Secure / SameSite cookies |
| Rate Limiting | Token-bucket: 200/min global, 10/min auth, 30/min upload |
| Input Validation | Server-side only, HTML tags stripped |
| SQL | Parameterized queries, WAL mode, foreign keys |
| Files | 20 MB max, 10 files max, filename sanitization |
| Headers | HSTS, X-Frame-Options, X-XSS-Protection, CSP |
| Webhooks | Stripe signature verification |
| Row-Level Security | Via Supabase RLS when enabled |
Environment Variables
| Variable | Required | Purpose |
|---|---|---|
GROQ_API_KEY |
Recommended | Groq API key for LLM extraction |
HF_TOKEN |
Optional | Fallback HF inference |
SUPABASE_URL |
Optional | Supabase project URL |
SUPABASE_KEY |
Optional | Supabase service key |
STRIPE_SECRET_KEY |
Optional | Payments via Stripe |
STRIPE_WEBHOOK_SECRET |
Optional | Stripe webhook verification |
APP_URL |
Optional | Public URL (default: localhost:7860) |
Running Locally
pip install -r requirements.txt
sudo apt-get install -y tesseract-ocr tesseract-ocr-eng poppler-utils
python server.py