JSON Schema → Pydantic
Konvertuj JSON Schema na kód modelu Pydantic v2 priamo v prehliadači. Vlož schému, dostaneš pripravenú Python triedu. Užitočné pre LLM workflow so štruktúrovaným výstupom.
Zadaj vstup vyššie, aby si videl výsledok.
Načo to slúži?
JSON Schema a Pydantic sú dva hlavné spôsoby, ako popísať štruktúrovaný objekt — JSON Schema je lingua franca pre OpenAPI špecifikácie, LLM function-calling a štruktúrované výstupy; Pydantic je de-facto knižnica na validáciu dát v Pythone. Pomerne často máš jedno a potrebuješ druhé. Tento nástroj robí konverziu jedným smerom: vlož JSON Schema, dostaneš triedu Pydantic, ktorú môžeš vložiť do Python súboru.
Kedy to použiť
- Štruktúrované výstupy LLM. OpenAI
response_formataj Anthropic tool-use prijímajú JSON Schema. Po návrhu a otestovaní schémy zvyčajne chceš Pydantic model na validáciu a prístup k poliam v Pythone. - Generovanie OpenAPI klienta. OpenAPI špecifikácia ti dáva JSON Schema pre každé telo požiadavky/odpovede; toto je rýchly spôsob, ako získať zodpovedajúce Pydantic modely bez sťahovania plného code generátora.
- Migrácia Schema → Python. Zdedil si systém, ktorý používa JSON Schema na validáciu a chceš ho presunúť na Pydantic. Vlož každú schému, dostaneš počiatočnú triedu, dolaď.
- Rýchle scaffolding. Tvar si načrtol v JSONe v notebooku; premeň ho na skutočný model jedným vložením.
Čo nástroj zvláda
type: objectsproperties+required— generuje vnorenú triedu BaseModel.type: arraysitems— generujeList[X].- Primitívy:
string→str,integer→int,number→float,boolean→bool,null→None. formatna stringu:date-time→datetime,email→EmailStr,uri/url→HttpUrl,uuid→UUID.enum→Literal[...];const→Literal[X].oneOf/anyOf→Union[...]; null varianta sa zloží doOptional[...].type: ["string", "null"]polia →Optional[str].description→Field(..., description=...).default→ predvolená hodnota poľa.minimum/maximum/minLength/maxLength→Field(ge=..., le=..., min_length=..., max_length=...).- Názvy polí, ktoré nie sú platné Python identifikátory, sa sanitizujú a pridáva sa
alias=na zachovanie pôvodného mena. Model je konfigurovaný spopulate_by_name=True. - Vnorené objekty sa stávajú vnorenými triedami, pomenovanými podľa poľa, ak nie je poskytnutý
title. $defs/definitionssa emitujú ako samostatné triedy.
Čo zatiaľ nezvláda
- Externé
$ref(URL refs). Lokálne refs na$defsfungujú. patternProperties. Emituje TODO komentár.additionalPropertiesso schémou. Emituje TODO komentár.- Viacbázová
allOfkompozícia. JednoprvkovéallOfje rozbalené. - Vlastné validátory na
pattern— pole vypustí, regex preskočí. Po vložení pridaj@field_validator, ak potrebuješ.
Časté pasce
- Pydantic v2 vs v1. Predvolený výstup je v2 (aktuálny). Prepni cez dropdown, ak si na v1 kódbáze.
- Výstup je východiskový bod, nie posledné slovo. Skontroluj. Najmä pre zložité únie, rekurzívne typy a čokoľvek s vlastnými validačnými pravidlami.
- Mená sú dôležité. Pole „Root class name" kontroluje názov triedy najvyššej úrovne. Podtriedy sú pomenované podľa ich
titlevlastnosti, ak je prítomná, inak podľa poľa, ktoré ich obsahuje. - Required vs Optional vo v2. Povinné pole bez defaultu používa
.... Optional polia majú defaultNonea sú zabalené vOptional[T].