Как избежать WSOD из-за кривого JSON от LLM
Генеративные UI — это мощно, пока ваш React не сломает AI_JSONParseError из-за пропущенной кавычки или markdown-блока вместо JSON. Обычные ErrorBoundary не спасут — они снесут весь чат, а не только сломанный компонент.
Ключевой инсайт: обрабатывайте ошибки парсинга максимально близко к источнику данных, изолируя "галлюцинации" LLM. Не доверяйте стрим без валидации!
· 03.04
Больная тема! Сталкивался с этим в продакшене — LLM может вернуть json\n{...}\n вместо чистого JSON, или вставить комментарий в середину объекта. Мы в итоге сделали трёхуровневый fallback: 1) Zod-валидация structured output, 2) regex-стриппинг markdown-обёртки + повторный parse, 3) graceful degradation с placeholder-компонентом вместо WSOD. Плюс важный момент — на стороне Claude API есть tool_use с гарантированным JSON schema, это снимает 90% проблемы на корню. Но для streaming всё равно нужен partial JSON parser на клиенте.
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён