Acht Validierungsregeln sichern die Schemaqualität. Sie laufen im Code, sobald die KI-Schemagenerierung ihre Antwort zusammengestellt hat — ein letztes Sicherheitsnetz über einer Pipeline, die sich bereits Schritt für Schritt selbst korrigiert.
Die Korrektur erfolgt dort, wo der Fehler entsteht, und nicht am Ende. Die Generierung ist eine Abfolge kleiner Aufrufe mit jeweils nur einem Anliegen, und jeder bringt seinen eigenen Validator mit: Er prüft die Antwort dieses Aufrufs, behält alles Gültige und fragt nur das erneut ab, was weiterhin fehlt. Ein Modell, das in Fragmenten antwortet, konvergiert dadurch, statt von vorn zu beginnen.
Nur zwei Schritte können eine Generierung komplett scheitern lassen: die Benennung der Entität und die Zuordnung von Eigenschaften zu Fachdomänen. Alles andere hat einen deterministischen Fallback — deshalb sind hier auch kleine Modelle nutzbar.
Nicht alle Regeln gelten sowohl für die Schema-Generierung als auch für die KI-Bearbeitung. Regeln, die mit den Eingabedaten abgleichen, werden während der Bearbeitung übersprungen, da Sie absichtlich Felder hinzufügen oder entfernen können:
| Geltungsbereich | Angewendete Regeln | Warum |
|---|---|---|
| Generierung | Alle 8 Regeln | Eingabedaten stehen zum Vergleich zur Verfügung |
| KI-Bearbeitung | Nur Regeln 2, 3, 4, 5 | Keine Eingabedaten; Benutzer ändert die Struktur möglicherweise absichtlich |
Die Anzahl der Fachbereiche darf das anhand Ihrer Eigenschaftsanzahl berechnete Maximum nicht überschreiten. Dies verhindert, dass die KI für kleine Schemas zu viele feingliedrige Bereiche erstellt.
Too many expertise domains: 6 defined, maximum is 3Das Maximum wird als floor(property_count / 6) berechnet, mit einem Minimum von 1. Ein Schema mit 12 Eigenschaften erlaubt bis zu 2 Fachbereiche.
Jedes Schema muss mindestens eine Eigenschaft definieren. Ein leeres Schema kann nicht für die Anreicherung verwendet werden.
Schema must have at least one propertyDies erkennt Fälle, in denen die KI eine gültige JSON-Struktur erzeugt, aber vergisst, tatsächliche Felder einzuschließen.
Jeder Eigenschaftstyp muss einer der Standard-JSON-Schema-Typen sein: string, number, integer, boolean, array, object oder null.
revenue: invalid type 'float'Die KI erfindet manchmal Typen wie „float“, „decimal“ oder „date“. Diese Regel erkennt sie und fordert eine Korrektur zu einem gültigen Typ an.
Jede $ref muss auf etwas Vorhandenes verweisen: #/$defs/... auf eine Entitätsdefinition, #/$enums/... auf einen Wertesatz. Hängende Referenzen unterbrechen die Anreicherungs-Pipeline.
manufacturer: $ref '#/$defs/Company' references undefined definitionDie beiden Namespaces sind getrennt: Eine #/$defs/-Referenz ist eine Beziehung zu einer verschachtelten Entität, während eine #/$enums/-Referenz eine Texteigenschaft auf eine geschlossene Liste zulässiger Werte beschränkt. Jede muss einen entsprechenden Eintrag in ihrem eigenen Block haben.
Der Expertise-Wert jeder Eigenschaft muss einem der definierten Expertisebereiche entsprechen. Das verhindert Tippfehler und Inkonsistenzen.
revenue: expertise 'finance' not in defined domains: ['financial_analyst']Die KI verwendet möglicherweise „finance“ statt des definierten Schlüssels „financial_analyst“. Diese Regel erkennt die Abweichung, damit die KI sie korrigieren kann.
Nicht-Objekt- und nicht bewahrte Eigenschaften müssen einer Expertise Domain zugewiesen sein. So wird sichergestellt, dass jedes anreicherbare Feld von einer spezialisierten Domain bearbeitet wird.
revenue: expertise is required for non-object typesObjekttypen sind ausgenommen, da ihre untergeordneten Eigenschaften ihre eigene Expertise-Domäne tragen. Erhaltene Felder sind ausgenommen, da sie unverändert durchgereicht werden.
Der Schematyp jeder Property muss dem tatsächlichen Python-Typ des entsprechenden Werts in Ihren Eingabedaten entsprechen.
revenue: type mismatch - input is number but schema says 'string'Wenn Ihre Eingabe "revenue": 42.5 enthält, muss das Schema den Typ "number" oder "integer" verwenden, nicht "string". Der Validator ist flexibel: Er akzeptiert "number" für Ganzzahlen und umgekehrt.
Jeder Schlüssel in Ihren Eingabedaten muss als Eigenschaft im generierten Schema erscheinen. Dies verhindert, dass die KI stillschweigend Felder verwirft.
Missing property from input: 'headquarters'Wenn Ihr Eingabe-JSON einen Schlüssel "headquarters" enthält, muss das generierte Schema ihn einschließen. So wird eine vollständige Abdeckung Ihrer Daten sichergestellt.
Regel 7 (Typabgleich) verwendet automatische Typinferenz, um Ihre Eingabewerte mit den im Schema deklarierten Typen zu vergleichen. Die Inferenz ist flexibel, um Fehlalarme zu vermeiden:
| Eingabewert | Abgeleiteter Typ | Akzeptiert auch |
|---|---|---|
| true / false | boolean | (nur Boolean) |
| 42 | integer | number |
| 3.14 | number | integer |
| "hello" | string | (nur String) |
| [1, 2, 3] | array | (nur Array) |
| {"key": "val"} | object | (nur Objekt) |
Hinweis: Booleans werden vor Integers geprüft, da Boolean in manchen Sprachen ein Untertyp von Integer ist. Diese Reihenfolge verhindert, dass true als Integer interpretiert wird.
Diese Tabelle beschreibt, was der Validator akzeptiert, nicht was die Generierung erzeugt. Ein Beispielwert von 3 macht die Eigenschaft nicht zu einem Integer: Numerische Felder werden als number ausgeliefert, sofern nicht ein eigener Schritt bestätigt, dass die Größe wirklich diskret ist und kein beobachteter Wert dem widerspricht. Eine ganze Zahl in einer Stichprobe ist kein Beleg dafür, dass halbe Werte unmöglich sind – und eine falsche Integer-Deklaration würde 6.2 in einer abnehmenden Datenbank auf 6 abschneiden.