Как получить JSON из модели и не сломаться
11 часов назад
Никита Вихров
Ответы
Как получить JSON из модели и не сломаться
Модель возвращает текст. Когда тебе нужен JSON — она может обернуть его в markdown-блок, добавить объяснение до и после, или вернуть почти-JSON с одной лишней запятой. json.loads() падает, прод ломается.
Есть несколько уровней защиты. Разберём от простого к надёжному.
Уровень 1: попросить правильно
Большинство проблем решается чётким промптом:
Уровень 2: надёжный парсинг
Даже с хорошим промптом иногда прилетает json .... Чистим перед парсингом:
Уровень 3: валидация через Pydantic
Парсинг прошёл — не значит данные правильные. Модель могла вернуть строку там, где нужно число:
Уровень 4: retry при ошибке
Если с первого раза не получилось — говорим модели что пошло не так:
Что использовать в продакшне
Для большинства задач хватает уровней 1–3: чёткий промпт + чистка markdown + Pydantic-валидация. Retry добавляй если задача критичная и ошибки недопустимы.
Уровень сложности выбирай по цене ошибки: для аналитики в фоне — уровень 2, для платёжных данных — уровень 4 с логированием каждой попытки.
11 часов назад
Никита Вихров





