{ "name": "@cf/cloudflare/clairic", "properties": [ { "property_id": "context_window", "value": "65536" }, { "property_id": "vision", "value": "true" }, { "property_id": "terms", "value": "#terms" }, { "property_id": "price", "value": [ { "unit": "per M input tokens", "price": 0.1, "currency": "USD" } ] } ], "id": "6b0b79c1-25e6-4498-bb62-5161df39f0ef", "source": 1, "description": "Clairic is a System One-style model that can extract, compute, estimate, and forecast values from inputs. It is strongly typed and outputs confidence scores and probabilities against its outputs. This model is in preview from the Cloudflare Workers AI team.", "task": { "id": "c329a1f9-323d-4e91-b2aa-582dd4188d34", "name": "Text Generation", "description": "Family of generative text models, such as large language models (LLM), that can be adapted for a variety of natural language tasks." }, "created_at": "2026-10-14 05:34:04.680", "tags": [], "schema": { "input": { "type": "object", "properties": { "model": { "type": "string", "pattern": "^(clairic|@cf/cloudflare/clairic)$", "default": "clairic", "description": "Required. The model selector: \"clairic\"." }, "state": { "type": "string", "default": "", "description": "The text to read and predict from. Must be non-empty unless images are sent. Text answers are spans of this string." }, "fields": { "type": "object", "description": "Required. Map of field name to a typed field spec. At least one field; no upper limit. Fields that do not fit next to the state in one 8,192-token pass are split across parallel passes.", "minProperties": 1, "propertyNames": { "pattern": "^[A-Za-z_][A-Za-z0-9_.\\-]{0,63}$" }, "additionalProperties": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "text", "number", "date", "time", "datetime", "duration", "list", "estimate", "forecast" ] }, "instructions": { "type": "string", "description": "What the field should contain." }, "unit": { "type": "string", "description": "Unit label. For durations, one of seconds, minutes, hours, days, weeks, months, years (default seconds)." }, "integer": { "type": "boolean", "description": "Numbers and durations only." }, "decimals": { "type": "integer", "minimum": 0, "maximum": 6, "description": "Numbers, durations and number lists only." }, "items": { "type": "string", "enum": [ "text", "number", "date" ], "description": "Required for list fields." }, "min": { "description": "Required for estimate/forecast: a number, or an ISO date for date estimates." }, "max": { "description": "Required for estimate/forecast: a number, or an ISO date for date estimates." }, "step": { "description": "Estimate grid: a positive number (days for date estimates), or \"month\" / \"year\"." }, "scale": { "type": "string", "enum": [ "linear", "log" ], "default": "linear" }, "null_threshold": { "type": "number", "exclusiveMinimum": 0, "maximum": 1, "description": "Probability of null above which the value is null (default 0.5)." }, "horizon": { "type": "integer", "minimum": 1, "maximum": 64, "description": "Forecast only: number of steps." }, "interval": { "type": "string", "enum": [ "step", "minute", "hour", "day", "week", "month", "quarter", "year" ], "description": "Forecast only." } }, "required": [ "type" ] } }, "images": { "type": "array", "description": "Optional embedded PNG, JPEG or WebP images placed before the state (max 4; 4 MiB each, 8 MiB total decoded; request body max 16 MiB). Remote URLs are not accepted.", "maxItems": 4, "items": { "anyOf": [ { "type": "string", "title": "Data URL", "pattern": "^[Dd][Aa][Tt][Aa]:" }, { "type": "object", "title": "Base64 image", "properties": { "content_type": { "type": "string" }, "base64": { "type": "string" } }, "required": [ "content_type", "base64" ] } ] } }, "reference_date": { "type": "string", "description": "ISO date that anchors dates written without a year." }, "options": { "type": "object", "properties": { "include_quantiles": { "type": "boolean", "default": false, "description": "Add 99 percentiles to estimates." }, "return_state_text": { "type": "boolean", "default": false, "description": "Return the text that spans index into." } } } }, "required": [ "model", "fields" ] }, "output": { "type": "object", "contentType": "application/json", "properties": { "model": { "type": "string" }, "answers": { "type": "object", "description": "One answer per field, keyed by field name. value is null when the input does not determine it.", "additionalProperties": { "type": "object", "properties": { "type": { "type": "string" }, "value": {}, "guess": {}, "p_null": { "type": "number" }, "confidence": { "type": "number" }, "span": { "type": "array", "items": { "type": "integer" } }, "spans": { "type": "array", "items": { "type": "array", "items": { "type": "integer" } } }, "mean": {}, "median": {}, "p10": {}, "p90": {}, "p_below": { "type": "number" }, "p_above": { "type": "number" }, "quantiles": { "type": "array" }, "steps": { "type": "array", "description": "Forecast only: one estimate per step." } }, "required": [ "type", "value" ] } }, "truncated": { "type": "boolean" }, "state_text": { "type": "string" }, "usage": { "type": "object", "properties": { "state_tokens": { "type": "integer" }, "image_tokens": { "type": "integer" }, "schema_tokens": { "type": "integer" }, "input_tokens": { "type": "integer" }, "output_tokens": { "type": "integer" }, "passes": { "type": "integer" } }, "required": [ "input_tokens", "output_tokens" ] } }, "required": [ "model", "answers", "truncated", "usage" ] } }, "deprecated": false }