Acht Validierungsregeln stellen die Schema-Qualität sicher. Wenn während der KI-Schema-Generierung eine Regel fehlschlägt, wird der Fehler zur automatischen Selbstkorrektur an die KI zurückgesendet.
Nachdem die KI ein Schema generiert hat, durchläuft es alle 8 Validierungsregeln. Schlägt eine Regel fehl, werden die konkreten Fehlermeldungen zusammengestellt und als Feedback an die KI zurückgesendet. Die KI erstellt dann ein korrigiertes Schema, das erneut validiert wird. Diese Schleife wird bis zu insgesamt 6 Mal ausgeführt (1 Erstversuch + 5 Wiederholungen).
In der Praxis bestehen die meisten Schemas beim ersten Versuch. Die Selbstkorrekturschleife ist ein Sicherheitsnetz, das Randfälle abfängt, in denen die KI Typfehler macht oder ein Feld vergisst.
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.
Alle $ref-Referenzen müssen auf Entitäten verweisen, die im $defs-Abschnitt des Schemas definiert sind. Verwaiste Referenzen unterbrechen die Anreicherungs-Pipeline.
manufacturer: $ref '#/$defs/Company' references undefined definitionWenn die KI eine Referenz wie #/$defs/Company erstellt, muss im $defs-Block eine passende Company-Definition vorhanden sein.
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.