Гейт на входе, но система все равно упала
Разработал систему для travel-компании, которая генерирует посты и письма из живых данных о скидках, маршрутах и спросе. Схема: парсим входящие данные, обогащаем, валидируем, LLM пишет текст и рисует обложку, проверяем, публикуем.
Входные данные были чистые, код без ошибок, промпты целы. Но в один день стилистика контента внезапно рассыпалась: вывалились сырые RSS-записи вместо брендированных постов. На входе никаких проблем, система упала на выходе.
Причина скрывалась в слепой зоне. Оба LLM-провайдера упали одновременно: один отозвал OAuth, второй исчерпал лимит. Системе было некуда идти, и fallback-обработчик выдал сырой контент дословно. После генерации никаких проверок не было, только молчаливое предположение: если текст появился, значит он корректен.
Фикс был простой: поставить гейт на выходе генерации. Перед публикацией проверяю, применилось ли брендирование. Если LLM упал и стилизация не произошла - пропускаю пост. Пропуск безопаснее выхода мусора.
Урок универсален: гейты на входе необходимы, но недостаточны. Если между входом и выходом есть критичный шаг, результат нужно проверить до финального действия. Доверять промежуточным слоям без последней проверки опасно.
#автоматизация #LLM #контент_система #надежность #гейты #обработка_данных #архитектура