Anforderung: In der Welle der KI-Ära großer Modelle setzen verschiedene Branchen KI ein, um uns bei der Datenanalyse zu helfen. Einige werden über Programmiersprachen genannt. Wir wollen, dass KI-große Modelle JSON-strukturierte Daten ausgeben. Wie können wir überprüfen, ob die von KI-Modellen ausgegebenen JSON-Strings den von unserem objektorientierten Ansatz definierten Typen entsprechen?
JsonSchema.Net
Manchmal müssen Sie überprüfen, ob das JSON-Objekt korrekt formatiert ist (mit den richtigen Schlüssel- und Werttypen), oder Sie möchten Kommentare zu den Daten hinzufügen. Hier kommt das JSON-Schema zum Vorteil. Ähnlich wie bei XML Schema definiert JSON Schema ein Muster für JSON-Daten. Der JSON-Schema-Validator kann überprüfen, ob ein bestimmtes JSON-Objekt die im JSON-Schema definierten Anforderungen erfüllt, und liefert der Anwendung zusätzliche Informationen über die Daten. Diese Bewertung kann als vorbereitender Schritt vor der Deserialisierung dienen und ist sehr nützlich.
Quelle:Der Hyperlink-Login ist sichtbar. Dokumentation:Der Hyperlink-Login ist sichtbar.
Derzeit sind sechs Versionen der JSON-Schema-Spezifikation bekannt:
- Entwurf 3
- Entwurf 4
- Entwurf 6
- Entwurf 7
- Entwurf 2019-09
- Draft 2020-12
Das JSON-Schema-Team empfiehlt die Verwendung von Draft 7 oder 2020-12. JsonSchema.Net unterstützen Draft 6 und später.
Grundlegendes Tutorial
Wir definieren ein Objekt für eine Person und generieren dann ein Schema. Der Code ist wie folgt:
Die Ausgabe ist wie folgt:
{ "Typ": [ "Objekt", "null" ], "Eigenschaften": { "Name": { "Typ": [ "Schnur", "null" ] }, "E-Mail": { "Typ": [ "Schnur", "null" ] }, "Alter": { "Typ": "Ganzzahl" }, "Adresse": { "Typ": [ "Array", "null" ], "items": { "Typ": [ "Objekt", "null" ], "Eigenschaften": { "Standort": { "Typ": [ "Schnur", "null" ] }, "Postleitzahl": { "Typ": "Ganzzahl" } }, "Erforderlich": [ "Ort", "Postleitzahl" ] } } }, "Erforderlich": [ "Name", "E-Mail", "Alter", "Adresse" ]
} Verwenden Sie JsonSchema, um zu überprüfen, ob eine JSON-Zeichenkette der Objektstruktur entspricht. Der Code ist wie folgt:
Wie unten gezeigt:
Mit dem Builder-Muster lautet der Code wie folgt:
(Ende) |