A newer version of the Gradio SDK is available: 6.22.0
title: OmniParse AI
emoji: ⚡
colorFrom: purple
colorTo: indigo
sdk: gradio
sdk_version: 5.49.1
app_file: app.py
pinned: true
license: mit
OmniParse AI — Invoice Processing SaaS
B2B SaaS pro automatické zpracování faktur. Nahraješ PDF/obrázek faktury, AI vytáhne vendor, čísla faktur, data, částky a DPH, a exportuješ do CSV/JSON/Excel nebo napojíš přes REST API.
Jak to spustit
- Nahraj
app.py,requirements.txt,packages.txta tentoREADME.mddo HuggingFace Space se SDK Gradio. - V Settings → Variables and Secrets nastav secrets podle tabulky níže.
- Pin Space (⋯ → Pin this Space), ať nespí.
Secrets
| Secret | Popis | Povinné? |
|---|---|---|
HF_TOKEN |
HuggingFace token pro fallback AI (Mistral-7B) | Doporučeno |
GROQ_API_KEY |
Primární AI extrakce (Llama 3.1 přes Groq) | Ano |
SUPABASE_URL |
URL Supabase projektu | Ano (jinak SQLite fallback) |
SUPABASE_KEY |
anon public key Supabase | Ano (jinak SQLite fallback) |
GOOGLE_VISION_KEY |
Google Cloud Vision OCR | Volitelné |
STRIPE_SECRET_KEY |
Stripe secret key (test/live) | Pro platby |
STRIPE_PRICE_BASIC |
Stripe Price ID pro Basic plán | Pro platby |
STRIPE_PRICE_PRO |
Stripe Price ID pro Pro plán | Pro platby |
STRIPE_PRICE_ENTERPRISE |
Stripe Price ID pro Enterprise plán | Pro platby |
APP_URL |
Veřejná URL Space (pro Stripe redirect) | Pro platby |
Aplikace se nikdy nezhroutí kvůli chybějícímu secretu — každá vrstva má fallback:
- Bez
GROQ_API_KEY→ zkusí HF Inference API → pak regex parser. - Bez
SUPABASE_URL/KEY→ přepne na lokální SQLite (omniparse.db), data nejsou perzistentní mezi restarty Space. - Bez
GOOGLE_VISION_KEY→ jen Tesseract OCR. - Bez
STRIPE_SECRET_KEY→ tlačítko Upgrade zobrazí instrukce místo Checkout linku.
Supabase schéma
Pokud používáš Supabase, spusť v SQL Editor tento skript před prvním spuštěním appky:
CREATE TABLE users (
id BIGSERIAL PRIMARY KEY,
email TEXT UNIQUE NOT NULL,
name TEXT NOT NULL,
password TEXT NOT NULL,
plan TEXT NOT NULL DEFAULT 'free',
stripe_cid TEXT,
api_key TEXT,
created_at TIMESTAMPTZ DEFAULT NOW()
);
CREATE TABLE sessions (
token TEXT PRIMARY KEY,
user_id BIGINT NOT NULL REFERENCES users(id),
expires_at TIMESTAMPTZ NOT NULL
);
CREATE TABLE invoices (
id BIGSERIAL PRIMARY KEY,
user_id BIGINT NOT NULL REFERENCES users(id),
filename TEXT NOT NULL,
vendor TEXT,
inv_number TEXT,
inv_date TEXT,
due_date TEXT,
amount NUMERIC(12,2),
vat_amount NUMERIC(12,2),
total NUMERIC(12,2),
currency TEXT DEFAULT 'USD',
status TEXT DEFAULT 'done',
is_duplicate BOOLEAN DEFAULT FALSE,
confidence NUMERIC(4,3),
raw_json JSONB,
created_at TIMESTAMPTZ DEFAULT NOW()
);
CREATE INDEX idx_invoices_user_month ON invoices(user_id, created_at);
Demo účet
Při prvním startu se automaticky vytvoří:
- Email:
demo@omniparse.ai - Heslo:
demo1234 - Plán: Pro
Poznámky k platbám
Stripe integrace zde funguje bez webhooků — po návratu ze Stripe Checkout uživatel
v záložce "⚡ Upgrade" vloží session_id z URL a klikne "Ověřit platbu", což zavolá
stripe.checkout.Session.retrieve() a upgraduje plán v DB. Pro produkční nasazení
doporučujeme doplnit skutečný webhook endpoint, tahle verze je zjednodušená podle
původního zadání ("bez webhooků").