Turn any model into a structured-output engine. Extract typed objects, JSON schemas, and validated data from unstructured responses — even when the model doesn't support structured outputs.
{ "approver": "Michelle", "amount": 125000, "date": "2026-07-18", "owner": "Shawn" }
Parsing with regex is fragile. Prompts break. Formats change every model update.
Many production models still don't support structured outputs — or do so inconsistently.
Malformed JSON crashes automations and downstream workflows in production.
Schematic sits between your model and your application. It normalizes any response into the types you define.
from schematic import extract from pydantic import BaseModel class Approval(BaseModel): approver: str amount: float date: str owner: str result = extract( text=response, schema=Approval, ) # → Approval(approver='Michelle', amount=125000.0, ...)
Define your schema once. Reuse it across models, prompts, and pipelines.
Works with any model — hosted or local. Swap providers without changing code.
Automatic type checking and coercion. Bad data never reaches your logic.
GLiNER → Small LLM → Repair. Graceful degradation when the primary path fails.
Run extraction locally with Ollama or open weights. No egress, no vendor lock-in.
Retries, auditing, structured logging, and observability hooks built in.
Paste any AI response. Pick a schema. Watch typed data emerge.
"Please respond in JSON with these fields…"
extract(text, MySchema)
from pydantic import BaseModel import schematic class Invoice(BaseModel): vendor: str total: float due_date: str result = schematic.extract(response, Invoice)
import schematic invoice_schema = { "type": "object", "properties": { "vendor": {"type": "string"}, "total": {"type": "number"}, }, } result = schematic.extract(response, invoice_schema)
from dataclasses import dataclass import schematic @dataclass class Invoice: vendor: str total: float due_date: str result = schematic.extract(response, Invoice)
Convert reasoning into deterministic actions your runtime can execute.
Extract decisions, action items, and owners from transcripts.
Capture opportunities, contacts, and next steps from every conversation.
Classify, tag, and structure support requests with typed fields.
Extract regulated information with schemas that encode policy.
Transform contracts, invoices, and reports into structured records.
No SDKs behind a login wall. No telemetry surprises. The library you'd write yourself, already written.
Star schematic on GitHub ★ 4.2k"This replaced hundreds of lines of parsing code across three services. The schema is the contract." — Staff Engineer
"Structured outputs without changing our model provider. The fallback chain saved us during an outage." — Platform Architect
Use any model. Get structured data. Ship in an afternoon.