Orux AI / Model notes
Claude Sonnet 5.5 JSON extraction: keep missing museum inventory fields as null
One real response turns three synthetic museum loan notes into JSON. Check missing values, numbers, dates and the difference between a prompt and schema enforcement.

On this page
A museum loan spreadsheet can become misleading when a missing insurance valuation is turned into zero. This Claude Sonnet 5.5 case asks a narrower question: can three short notes become explicit records while unknown information stays unknown? We ran one request with synthetic exhibits, not a real museum collection.
The exact request and observed answer
The published Orux form accepts messages and max_tokens. We sent the following English instruction with max_tokens=600:
You are preparing a museum loan inventory. Extract only facts explicitly stated below. Return one JSON object with an items array; each item must have exactly id, title, gallery, insurance_usd, and arrival_date. Use a JSON number for insurance_usd and YYYY-MM-DD for a stated date. Use null for every missing field. Do not invent a valuation, date, gallery, or item. Return JSON only, without Markdown.
A1: Brass compass. Display in Gallery A. Insured for USD 12000. Arrives on 2026-11-14.
B2: Silk route map. Display in Gallery B. Insurance valuation is still awaiting approval. Arrives on 2026-11-16.
C3: Ceramic sherd. Insured for USD 850. The arrival date and gallery have not been confirmed.The saved response was valid JSON and contained the three requested records:
{
"items": [
{
"id": "A1",
"title": "Brass compass",
"gallery": "Gallery A",
"insurance_usd": 12000,
"arrival_date": "2026-11-14"
},
{
"id": "B2",
"title": "Silk route map",
"gallery": "Gallery B",
"insurance_usd": null,
"arrival_date": "2026-11-16"
},
{
"id": "C3",
"title": "Ceramic sherd",
"gallery": null,
"insurance_usd": 850,
"arrival_date": null
}
]
}
Editorial typesetting of the original text response. Claude generated the JSON text, not this graphic. Observed on 2026-10-28.
Read the missing values before importing
| ID | Title | Gallery | Insurance, USD | Arrival date |
|---|---|---|---|---|
| A1 | Brass compass | Gallery A | 12000 | 2026-11-14 |
| B2 | Silk route map | Gallery B | null — unapproved | 2026-11-16 |
| C3 | Ceramic sherd | null — unconfirmed | 850 | null — unconfirmed |
Swipe horizontally to view the full table.
The response preserves the absent B2 valuation and the two unknown C3 fields as null. That distinction matters: zero would be a claimed valuation, while a blank date must not become a guessed shipping deadline. These are checks on this answer, not a claim about the model’s error rate.
Which parameters actually mattered here?
| Setting | Role in this case |
|---|---|
messages | Carries the source notes, exact keys, number/date requirements and the no-inference instruction |
max_tokens=600 | Limits output generation; it does not impose a 600-character limit or validate JSON |
Swipe horizontally to view the full table.
The response reports 278 input tokens and 161 output tokens, ending with stop. Those are the recorded usage values from one call; they are not a latency test or a quality benchmark. We did not send a JSON Schema parameter. A prompt that asks for JSON is not schema-constrained generation; native schema controls are separate API features.
Add deterministic checks after the model
Before import, parse the text; require an items array of three objects; check the exact five keys; reject duplicate IDs; and validate number-or-null and date-or-null fields. Then reconcile each non-null value with its source line. A syntactically valid JSON object can still contain a wrong fact.
For a real collection, treat valuations, movement dates and gallery assignments as approval-controlled data. This example demonstrates extraction from supplied notes, not valuation, shipping advice or permission to publish collection records.
Load the “Museum loan inventory · text response” template on Claude Sonnet 5.5. The template preserves this prompt and answer; loading it does not run the model. Start with a small redacted batch and review exceptions before connecting an importer.
Related articles
Browse all articles →
DeepSeek Cafe Opening Copy: What to Check After It Sounds Good
A real DeepSeek V4.1 Flash cafe-opening response reveals why tone, length and promotional promises need separate checks. Includes the original request and output.

Seedream 5.0 Pro travel hero: crop a railway café without losing the story
Use an existing mountain railway café image to plan desktop and mobile crops, check signage and keep the scene readable.

Kling 4.0: How to Choose Between Two Videos from the Same Prompt
Compare two existing Kling 4.0 desk shots on Orux through composition, subject identity and motion continuity, with original videos, settings and prompt.