Проверка JSON-ответа LLM

Вставьте JSON Schema и ответ LLM, чтобы увидеть каждую ошибку проверки с путём JSON и строкой. Блоки кода, висячие запятые, одинарные или типографские кавычки, комментарии и True/None из Python исправляются заранее. Проверка идёт в браузере через Ajv 8.20.0 (draft-07, 2019-09, 2020-12).

    Всё работает в вашем браузере. Ничего не сохраняется и не отправляется.

    Удалось решить задачу?
    Предпочитать в Google

    Как пользоваться

    1. Вставьте JSON Schema слева. Обёртка response_format от OpenAI с полями name и schema раскрывается автоматически.
    2. Вставьте ответ модели справа как есть, даже с блоком кода или текстом вокруг.
    3. Смотрите результат. Для каждой ошибки указаны строка и столбец (щелчок переносит туда), путь JSON и суть. Если ответ пришлось сначала почистить, исправления перечислены, а очищенный JSON готов к копированию.

    Как считается

    Сначала ответ разбирается как есть. Если не получилось, инструмент убирает то, что модели выдают чаще всего, и пробует снова: блок кода Markdown, текст до или после JSON, метку BOM, типографские кавычки, строки в одинарных кавычках, комментарии // и /* */, висячие запятые и True, False и None из Python. Текст внутри строк никогда не меняется.

    Схема проверяется Ajv 8.20.0, распространённым валидатором JSON Schema, который загружается только когда вы что-то вставили. Черновики 2020-12 и 2019-09 используются, если их называет поле $schema, иначе draft-07. Сообщаются все ошибки, а не только первая.

    Ключевое слово format (email, date-time и др.) не проверяется, удалённые ссылки $ref не загружаются.

    Ничего из вставленного не сохраняется, не отправляется и не попадает в адрес страницы.

    Самые частые ошибки LLM

    ПроблемаПримерИсправляется автоматически
    Блок кода```json { ... } ```Да
    Текст вокруг JSONSure! Here it is: { ... }Да
    Висячая запятая{"a": 1,}Да
    Одинарные или типографские кавычки{'a': 'b'}Да
    Нет обязательного поля{"title": "x"}Нет, сообщается
    Неверный тип"rating": "5"Нет, сообщается
    Лишнее поле"author": "x" при additionalProperties falseНет, сообщается

    Как сразу получать корректный вывод

    • По возможности используйте режим структурированного вывода провайдера. Строгий json_schema у OpenAI и structured outputs у Anthropic ограничивают модель схемой.
    • Строгие режимы требуют, чтобы все свойства были в required, а additionalProperties было false. Проверьте, что ваша схема соблюдает эти правила.
    • Если вы разбираете вывод модели без строгого режима, оставьте шаг очистки вроде этого и проверяйте данные, прежде чем им доверять.

    Частые вопросы

    Почему мой JSON не разбирается, хотя выглядит нормально?

    Обычно виновата запятая после последнего элемента, блок кода вокруг JSON или типографские кавычки из окна чата. Инструмент исправит это и покажет, что изменил.

    Какие черновики JSON Schema поддерживаются?

    По умолчанию draft-07, а также 2019-09 и 2020-12, если это указано в поле $schema.

    Мои данные куда-то загружаются?

    Нет. Разбор и проверка идут в вашем браузере, текст не сохраняется и не попадает в URL.

    Можно вставить объект response_format от OpenAI?

    Да. Объект с name и schema или с json_schema.schema раскрывается, и используется внутренняя схема.