Когда выбирать DeepEval
Подходит
- LLM-проверки должны быть обычными тестами в Python-репозитории с запуском в CI.
- Нужны готовые метрики: G-Eval, faithfulness, contextual recall и precision, hallucination, JSON Correctness.
- Нужно оценивать не только ответ, но и поиск в RAG, вызовы инструментов агентом, многоходовые диалоги.
- Нужен собственный критерий: G-Eval позволяет описать его словами.
Не подходит
- Нужен только сравнительный прогон моделей и промптов без кода — Promptfoo проще.
- Нужна трассировка реального продакшен-трафика как основная задача — смотрите Langfuse, LangSmith или Arize Phoenix.
- Нет ключа к модели-судье: по умолчанию метрики требуют OPENAI_API_KEY (можно подключить свою модель).
Установка
pip install -U deepevalnpm install --save-dev deepevalПримеры тестов
Первый тест: G-Eval с критерием словами
1from deepeval import assert_test
2from deepeval.metrics import GEval
3from deepeval.test_case import LLMTestCase, SingleTurnParams
4
5
6def test_correctness():
7 correctness = GEval(
8 name="Correctness",
9 criteria="Determine if the 'actual output' is correct based on the 'expected output'.",
10 evaluation_params=[SingleTurnParams.ACTUAL_OUTPUT, SingleTurnParams.EXPECTED_OUTPUT],
11 threshold=0.5,
12 )
13 test_case = LLMTestCase(
14 input="What if these shoes don't fit?",
15 actual_output="You have 30 days to get a full refund at no extra cost.",
16 expected_output="We offer a 30-day full refund at no extra costs.",
17 )
18 assert_test(test_case, [correctness])Запуск: deepeval test run test_chatbot.py. Перед запуском задайте переменную окружения OPENAI_API_KEY: по умолчанию метрики оценивает модель OpenAI. Код соответствует примеру из документации.
Метрика Faithfulness для RAG
1from deepeval.metrics import FaithfulnessMetric
2from deepeval.test_case import LLMTestCase
3
4actual_output = "We offer a 30-day full refund at no extra cost."
5retrieval_context = ["All customers are eligible for a 30 day full refund at no extra cost."]
6
7metric = FaithfulnessMetric(threshold=0.7, model="gpt-4.1", include_reason=True)
8test_case = LLMTestCase(
9 input="What if these shoes don't fit?",
10 actual_output=actual_output,
11 retrieval_context=retrieval_context,
12)
13
14metric.measure(test_case)
15print(metric.score, metric.reason)Для FaithfulnessMetric обязательны input, actual_output и retrieval_context. include_reason=True возвращает объяснение оценки, по нему удобно разбирать провалы.
Типичные ошибки
- Ключ и модель судьи
- Метрики используют LLM-as-a-judge, по умолчанию OpenAI, и без OPENAI_API_KEY тесты не запустятся. Заранее решите, какую модель-судью вы используете, и зафиксируйте её в коде.
- Слишком мягкий threshold
- У метрик есть порог (threshold), и слишком низкий пропускает плохие ответы. Подбирайте его по вашим кейсам, сверяя с человеческой оценкой, а не по значению по умолчанию.
- Неполный тест-кейс
- Каждая метрика требует свои поля LLMTestCase: для RAG-метрик нужен retrieval_context. Без него метрика не сможет посчитаться, поэтому собирайте контекст вместе с ответом.
- Один судья на всё
- Метрики в одном прогоне оценивает та же модель-судья. Если она из того же семейства, что и тестируемая система, оценки могут быть завышены, поэтому проверяйте согласие с людьми.
Вопросы на собеседовании по DeepEval
- Как выглядит тест в DeepEval и чем он похож на обычный pytest-тест?
- Что такое G-Eval и когда его лучше использовать, чем готовую метрику?
- Какие поля LLMTestCase нужны для FaithfulnessMetric и почему?
- Как оценить отдельно поиск и отдельно генерацию в RAG средствами DeepEval?
- Как запускать такие тесты в CI и что делать с зависимостью от модели-судьи?
Отработать ответы можно на мок-собеседовании.
Частые вопросы
Что такое DeepEval?
Open-source фреймворк (Apache 2.0) для тестирования LLM-приложений в стиле pytest: тест-кейсы LLMTestCase, метрики на основе LLM-as-a-judge и запуск командой deepeval test run.
Какие метрики есть в DeepEval?
В README перечислены пользовательские (G-Eval, DAG), RAG-метрики (Answer Relevancy, Faithfulness, Contextual Recall, Contextual Precision, Contextual Relevancy), агентные (Task Completion, Tool Correctness и другие), метрики многоходовых диалогов, а также Hallucination, Summarization, Bias, Toxicity и JSON Correctness.
Нужна ли платформа Confident AI, чтобы пользоваться DeepEval?
Нет. DeepEval работает как open-source библиотека. Confident AI — отдельная платформа для сравнения итераций, отчётов и мониторинга в продакшене: к ней можно подключиться при необходимости.
Можно ли запускать DeepEval в CI?
Да. По документации тесты запускаются в неинтерактивной среде, а для интеграции с Confident AI ключ передаётся командой deepeval login --api-key.