Infer a JSON Schema from samples
ai_json_schema_inferGenerate a JSON Schema (draft 2020-12) from sample JSON, JSONL, or files by inferring types, nullability, required keys, formats, and enums.
Instructions
Generate a JSON Schema (draft 2020-12) from one or more sample JSON values: types (integer vs number, mixed types as a type list), "null" added where a value can be null, required = keys present in every sample object, array items merged across all elements, string formats guessed when every sample matches (date-time, date, email, uri, uuid), and optional enums for small repeated string sets. Give "samples" (an array of sample values), or "text" (JSON, or JSONL = one sample per line), or "file" (path or base64 of a .json/.jsonl file). An array sample describes an array; to treat its elements as separate samples set eachItem. Pure local code; optionally writes the schema to "output".
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| file | No | Or: a .json/.jsonl file (local path or base64). | |
| text | No | Or: JSON text (one sample) or JSONL (one sample per line). | |
| enums | No | Emit "enum" for string fields with few distinct values that repeat. Default false. | |
| title | No | Optional "title" for the schema. | |
| output | No | Optional: also write the schema as a .json file here. | |
| formats | No | Guess string formats (default true). | |
| samples | No | Sample values; each element is one sample. | |
| eachItem | No | If the only sample is an array, use its elements as the samples (schema of one record). Default false. | |
| required | No | List keys present in every sample as "required" (default true). | |
| maxEnumValues | No | Largest string set turned into an enum (default 8). | |
| additionalProperties | No | false adds additionalProperties: false to every object (strict). Default true (left open). |