Требование: В эпоху больших моделей ИИ различные отрасли внедряют ИИ для помощи в анализе данных. Некоторые из них вызываются через языки программирования. Мы хотим, чтобы большие модели ИИ выдавали данные, структурированные на JSON. Как мы можем проверить, совпадают ли строки JSON, выходящие моделями ИИ, с типами, определёнными нашим объектно-ориентированным подходом?
JsonSchema.Net
Иногда может потребоваться проверить, что JSON-объект правильно отформатирован (с правильными типами ключей и значений), или добавить комментарии к данным. Вот тут на помощь пригодится схема JSON. Аналогично XML Schema, JSON Schema определяет шаблон для данных JSON. Валидатор схемы JSON может проверить, соответствует ли конкретный объект JSON требованиям, определённым схемой JSON, и предоставляет приложению дополнительную информацию о данных. Эта оценка может служить подготовительным этапом перед десериализацией и очень полезна.
Источник:Вход по гиперссылке виден. Документация:Вход по гиперссылке виден.
В настоящее время известно шесть версий спецификации JSON Schema:
- Черновик 3
- Черновик 4
- Черновик 6
- Драфт 7
- Драфт 2019-09
- Драфт 2020-12
Команда JSON Schema рекомендует использовать Draft 7 или 2020-12 годы. JsonSchema.Net поддерживаю Draft 6 и далее.
Базовый туториал
Мы определяем объект для человека, затем генерируем схему. Код выглядит следующим образом:
Результат выглядит следующим образом:
{ "type": [ «объект», «ноль» ], "свойства": { "Name": { "type": [ «нить», «ноль» ] }, "Email": { "type": [ «нить», «ноль» ] }, «Возраст»: { "type": "целое число" }, "Address": { "type": [ «array», «ноль» ], "items": { "type": [ «объект», «ноль» ], "свойства": { "Местоположение": { "type": [ «нить», «ноль» ] }, "Почтовый индекс": { "type": "целое число" } }, «требуется»: [ «Местоположение», «Почтовый индекс» ] } } }, «требуется»: [ «Имя», «Электронная почта», «Возраст», «Адрес» ]
} Используйте схему JsonSchema для проверки, соответствует ли строка JSON структуре объекта. Код выглядит следующим образом:
Как показано ниже:
Используя шаблон builder, код выглядит следующим образом:
(Конец) |