Hvad betyder JSON Schema til AI-output?
JSON Schema er et sprog til at beskrive og kontrollere JSON-dokumenter. Et skema kan blandt andet angive, at en værdi skal være et tal, at et objekt skal indeholde bestemte felter, eller at en kategori skal vælges fra en afgrænset liste.
I en AI-arbejdsgang fungerer skemaet som en aftale mellem modellen og det program, der modtager svaret. Aftalen er nyttig, fordi fri tekst ellers kan variere i feltnavne, rækkefølge og manglende oplysninger. Et program kan undersøge, om resultatet overholder de regler, det er skrevet til.
Der findes forskellige udgaver af JSON Schema, og en modeludbyder kan understøtte et begrænset udsnit. Et skema, som er gyldigt efter standarden, er derfor ikke nødvendigvis understøttet af den valgte API. Det skal kontrolleres i den konkrete integration.
Fravær, tom tekst og null er forskellige
Et obligatorisk felt skal være til stede, men det betyder ikke automatisk, at enhver værdi er acceptabel. En tom tekststreng, en manglende nøgle og værdien null har forskellige betydninger og kan kræve forskellige regler.
For et dataudtræk bør teamet beslutte, hvordan “ikke oplyst” repræsenteres. Hvis en leveringsdato ikke findes i dokumentet, er det ofte mere nyttigt med en eksplicit ukendt tilstand end en tom streng, som senere fortolkes forskelligt af to systemer.
Et skema kan ikke bekræfte en virkelig aftale
Skemaet kan kontrollere, at et beløb er et tal, men ikke alene afgøre, om det er beløbet fra den rigtige kontrakt. Den kontrol kræver sammenhæng med dokumentet og eventuelt andre datakilder.
Hold derfor datakontrakten lille og tydelig. Når et nyt felt tilføjes, skal modtagersystemet kunne håndtere det, og gamle poster må ikke fejltolkes. Versionsstyring af skema og integration hjælper med at gøre ændringen synlig. Beskrivelser i skemaet kan støtte modellen, men de er ikke en erstatning for validering.
Et eksempel fra praksis
Et indkøbsteam udtrækker leverandørnavn, valuta og betalingsfrist fra tilbud. Skemaet kræver felterne, men tillader en markeret ukendt værdi, når betalingsfristen mangler. Valutaen vælges fra de valutaer, virksomhedens arbejdsgang understøtter.
En prøve indeholder et tilbud, hvor beløbet står både med og uden moms. Skemaet kan ikke selv vælge den rigtige forretningsbetydning. Teamet tilføjer derfor et felt til beløbstype og en kildehenvisning, og kontrollerer udtrækket mod originalen, før oplysningerne overføres til indkøbssystemet.
Typiske faldgruber
- Et felt i properties antages automatisk at være obligatorisk.
- Null og manglende felt blandes sammen i modtagersystemet.
- Et skema godkendes uden at undersøge API’ens understøttede delmængde.
Det skal I afklare
- Fastlæg datatyper, obligatoriske felter og ukendte værdier.
- Prøv både gyldige og ugyldige eksempler i en validator.
- Versionsstyr skemaet sammen med den kode, der modtager svaret.
Spørgsmål og svar
Er JSON og JSON Schema det samme?
Nej. JSON er et dataformat. JSON Schema beskriver regler for, hvilke JSON-data der er acceptable i en bestemt sammenhæng.
Skal alle felter være obligatoriske?
Ikke generelt. Aftalen skal passe til opgaven og udbyderens krav. Et obligatorisk felt kan stadig have en eksplicit ukendt tilstand, hvis skemaet tillader det.
Kilder og videre læsning
De tekniske begreber bygger på nedenstående kilder. Eksemplerne er illustrative og viser, hvordan I kan arbejde med emnet.
- JSON Schema: Object reference ↗Properties, required, ekstra felter og forskellen mellem null og fravær.
- LangChain: Structured output ↗Brug af skemaer ved generering og håndtering af valideringsfejl.

