documentation

Schemas, models and assistance

Writing the brief, picking a tier per project, and drafting a schema from a sentence.

The schema is not documentation of the output. It is the instruction.

The schema is the brief

Every property you declare is a field the model is asked for. The description is what it is told to look for, and required is what makes a missing value a failure instead of an empty string.

{
  "type": "object",
  "properties": {
    "vendor": { "type": "string", "description": "Merchant name" },
    "total": { "type": "number", "description": "Grand total" },
    "date": { "type": "string", "description": "Issue date, ISO 8601" }
  },
  "required": ["vendor", "total"]
}

Two rules that save the most time:

  • Write the description for a stranger. "Grand total" is enough for a receipt. "Amount charged before tax" is not the same field, and saying so is the difference.
  • Declare only what the page has. A field the document never carries becomes a violation on every read.

Up to 10 additional prompts of 500 characters each can be attached to a schema for the instructions that do not fit in a description.

Choosing a model

Each project picks one tier. The tiers differ in how hard a page they will read, not in the contract they answer with: every tier validates against your schema.

Tier Built for Watch for
fast Clean scans, printed receipts, dense but regular forms Handwriting, faded thermal paper
balanced The default: mixed scans, phone photos, multi-column Very long documents
best Dense or damaged pages, small print, stamps, tables Cost per read, slower turnaround

Switching a tier does not change your schema, your credential or your existing results. It changes what the next read costs and how much it can see.

Assistance

Naming the fields is the slow part, not writing the JSON. Describe what you want in one sentence such as "vendor, total and issue date from a receipt", and the console drafts a schema: named properties, types, descriptions, and the required list marked. You edit the draft in the editor, not the other way round.

The draft is a starting point, never a decision: nothing is saved until you save it, and the schema you commit is still the only thing the core is asked to honour.

Where the schema lives

One schema per project, editable from the project page. Saving a new version takes effect on the next read: no redeploy, no credential rotation, no re-indexing. Results already kept stay as they were read, with the violations they were read with.

link copied