Статьи ·

DeepEval: юнит-тесты для LLM, которые живут в CI

DeepEval от Confident AI - open-source фреймворк для оценки LLM-приложений: тесты пишутся как pytest-кейсы, 50+ метрик покрывают RAG, агентов и чат-ботов. Разбираем, как устроить эвалы за вечер.

Поменял промпт - и бот тихо начал врать в ответах. Обновил модель - и половина edge-кейсов посыпалась. Обычные тесты это не ловят: там нет assert'а на "не галлюцинируй". DeepEval от Confident AI - open-source фреймворк, который делает для языковых моделей то же, что pytest для обычного кода.

Как это работает

Пишете test case: вход, фактический ответ модели, ожидаемый ответ, контекст ретрива. Дальше - метрики. Большинство из них работают как LLM-as-judge: отдельная модель-судья оценивает ответ по шкале. Из коробки 50+ метрик: G-Eval, hallucination, faithfulness, answer relevancy, contextual precision для RAG, tool correctness и task completion для агентов, conversational-метрики для многошаговых диалогов. Запуск - deepeval test run, как обычный pytest. А если тестовых кейсов мало - фреймворк умеет генерировать синтетические датасеты.

Метрики и CI

Покрытие - первое, ради чего его берут. Метрики написаны по свежим исследованиям, и под RAG, агентов и чат-ботов не надо выдумывать рубрики с нуля. Второе - CI-нативность: работает везде, где работает pytest, так что гейт "эвалы зелёные" в пайплайн вставляется за вечер. Сам фреймворк бесплатен под Apache-2.0 и ни к кому не привязан - судьёй может быть любая модель.

Подводные камни

Судья стоит денег и шумит. Каждый прогон метрик - это инференс отдельной модели, а её вердикты плавают от запуска к запуску. Пороги калибруйте на своих данных, дефолтные не берите. Дальше: это кодовый инструмент без UI. QA и продакты в тестирование не вовлечь, результаты живут в логах CI. Хотите дашборды и совместную работу - сверху нужен облачный Confident AI. И синтетические датасеты - это стартовая точка, а не замена реальным кейсам из продакшена. Каждый продовый фейл должен становиться тест-кейсом - иначе набор протухнет.

Кому подходит

Инженерным командам, которым нужны бесплатные кодовые эвалы с pytest-стилем и гейтами в CI. А вот если нужен UI для не-инженеров, совместная разметка и мониторинг из коробки - смотрите на облако Confident AI или Braintrust. Разумный путь: начать с DeepEval в CI, а платформу подключать, когда эвалы станут командной работой, а не личным скриптом.