CoolFace
Apppublic

BonusLockSMith/structured-extractor

sourceHugging Faceupdated 16d agoView on Hugging Face
0likes
App README

Structured Data Extractor 🧬

Paste messy, unstructured text — an email signature, a receipt, a job posting, an event invite — and get back clean, schema-valid JSON. Pick a preset (Contact, Invoice, Event, Job) or define your own fields.

Project #4 of my "30 AI Projects in 15 Days" build-in-public challenge.

▶ Live demo: https://extract.gritai.solutions

[image]

What makes it reliable

The output is always valid JSON matching the schema — because it uses Claude's forced tool-use: the model is required to call a tool whose input_schema is the target schema, so the response is structured and validated at the API layer (no brittle "parse JSON out of prose"). Missing fields come back as null — it never invents values. (The local Ollama fallback uses constrained JSON decoding via format=<schema>.)

What it demonstrates

  • Structured outputs / function-calling — the core skill behind reliable AI pipelines.
  • Schema design — presets plus on-the-fly custom field extraction.
  • Clean product UX — one-click samples, syntax-highlighted JSON, copy to clipboard.

Presets

👤 Contact · 🧾 Invoice/Receipt · 📅 Event · 💼 Job posting · ✨ Custom (your own fields)

Run locally

bash
pip install -r requirements.txt
export ANTHROPIC_API_KEY=sk-ant-...      # or set OLLAMA_URL / OLLAMA_MODEL
python app.py                            # http://127.0.0.1:8500

Deploy (always-on)

Ships with a Dockerfile — works on Hugging Face Spaces, Render, Railway, or Fly.io. Set ANTHROPIC_API_KEY (+ optional ANTHROPIC_MODEL=claude-haiku-4-5) as a secret.


Built by Robert Lucyk · GritAI Solutions · part of the 30-in-15 challenge.