Unknown Behavior

Demo · Symptom Triage

Pre-visit triage from a sentence and an optional photo.

Plain language in. Schema-validated structure out: body systems involved, ranked possible causes, red flags, and the questions a clinician will likely ask.

01 · How it works

Three steps.

01

Describe a symptom

Plain language. One or two sentences is enough. Mention duration and what changes it if you can.

02

Optionally add a photo

Image-grounded findings come back in a separate field, so you can see when the model is reasoning from the picture vs. from text alone.

03

Get structured triage

Body systems involved, ranked possible causes, red flags, and the questions a clinician will likely ask. Schema-validated before it reaches you.

02 · Run it

Try the demo.

Live, calling Claude Sonnet 4.6 vision through a Netlify Function. Output is JSON-schema validated before render; malformed responses are rejected and retried.

Plain language · up to 4,000 characters
Optional · PNG, JPEG, GIF, WEBP · max 5 MB
Drop an image or click to upload Image-grounded findings appear in a separate output field

Research demo. Not a medical device, not for clinical use, does not provide medical advice. Consult a licensed clinician for any medical concern.

03 · Behind the demo

Methodology.

The model is Claude Sonnet 4.6 with vision, called from a single Netlify Function. The same backend handles text-only and image-plus-text prompts; when a photo is present, the response includes a visual_findings array, isolated so a reader can tell whether the image actually informed the answer or whether the model reasoned from the text alone.

Output is validated against a JSON schema at inference time. Malformed responses are rejected and retried before they reach this page. Hallucination containment is enforced by structure, not by training accuracy.

Symptom Triage v1 was a LoRA fine-tune of Qwen2.5-1.5B evaluated on a held-out symptom set. v2 trades the fine-tune for a larger, vision-capable foundation model and keeps the same schema as the contract surface.