Eval AI Library¶
Комплексный фреймворк для оценки AI систем
Оценивайте RAG-системы, AI-агентов и безопасность LLM с помощью 30+ метрик, поддержки 12 провайдеров и продвинутых техник скоринга. Eval AI Library предоставляет единый интерфейс для всесторонней оценки качества ваших AI-систем -- от точности ответов до устойчивости к атакам.
Ключевые возможности¶
-
RAG-метрики
Релевантность ответа, точность, верность контексту, релевантность/точность/полнота контекста, обнаружение предвзятости и токсичности.
-
Метрики агентов
Корректность инструментов, успешность задач, соблюдение роли, сохранение знаний и обнаружение ошибок для AI-агентов.
-
Метрики безопасности
Prompt-инъекции, jailbreak, утечка PII, вредоносный контент, соответствие политикам, ограниченный отказ.
-
Детерминированные метрики
Точное совпадение, содержит, regex, JSON Schema, проверка формата/длины, определение языка -- без LLM.
-
Векторные метрики
Семантическое сходство и совпадение с эталоном на основе эмбеддингов для оценки по смыслу.
-
12 LLM-провайдеров
OpenAI, Azure, Gemini, Claude, DeepSeek, Qwen, Mistral, Groq, Grok, Zhipu, Ollama и кастомные провайдеры.
-
G-Eval и кастомные метрики
G-Eval с взвешиванием по вероятности токенов и полностью настраиваемые критерии оценки.
-
Генерация тестовых данных
Генерация тест-кейсов из документов в 15+ форматах: PDF, DOCX, CSV, JSON, HTML и изображения с OCR.
Быстрый пример¶
Ниже приведён минимальный пример, демонстрирующий основной рабочий процесс Eval AI Library: создание тест-кейса, выбор метрик и запуск оценки. Всего несколько строк кода позволяют получить количественную оценку качества ответов вашей AI-системы.
import asyncio
from eval_lib import evaluate, EvalTestCase, AnswerRelevancyMetric, FaithfulnessMetric
test_case = EvalTestCase(
input="What is machine learning?",
actual_output="Machine learning is a subset of AI that enables systems to learn from data.",
expected_output="Machine learning is a branch of artificial intelligence focused on building systems that learn from data.",
retrieval_context=[
"Machine learning is a subset of artificial intelligence (AI) that provides systems the ability to automatically learn and improve from experience without being explicitly programmed."
]
)
metrics = [
AnswerRelevancyMetric(model="gpt-4o", threshold=0.7),
FaithfulnessMetric(model="gpt-4o", threshold=0.7),
]
results = asyncio.run(evaluate([test_case], metrics))
В результате выполнения вы получите подробный отчёт с оценками по каждой метрике, статусом прохождения порога и общей стоимостью вычислений:
============================================================
EVALUATION RESULTS
============================================================
Test Case 1/1: What is machine learning?
Answer Relevancy
Score: 0.92 | Threshold: 0.70 | PASSED
Faithfulness
Score: 0.95 | Threshold: 0.70 | PASSED
============================================================
Overall: 1/1 test cases passed (100.0%)
Total evaluation cost: $0.0034
============================================================
Каждая метрика возвращает числовой score от 0.0 до 1.0, где 1.0 означает идеальный результат. Порог (threshold) определяет минимальное значение score, при котором тест-кейс считается пройденным. Стоимость оценки (evaluation cost) рассчитывается автоматически на основе количества токенов, отправленных модели-судье.
Обзор архитектуры¶
Eval AI Library построена по модульному принципу. Библиотека состоит из пяти основных слоёв: ядро с API оценки и агрегацией, слой метрик с 30+ реализациями, абстрактный интерфейс провайдеров для подключения любых LLM, модуль генерации тестовых данных и модуль вывода результатов.
graph TB
subgraph Core["🔧 Ядро"]
direction LR
TC[EvalTestCase]
DS[EvalDataset]
API["evaluate()"]
AGG[Агрегация оценок]
end
subgraph Metrics["📊 Слой метрик"]
direction LR
RAG["RAG\nРелевантность · Верность\nТочность · Полнота"]
AGENT["Агенты\nИнструменты\nЗадачи · Роль"]
SEC["Безопасность\nИнъекции · Jailbreak\nPII · Вредоносность"]
DET["Детерминированные\nRegex · JSON Schema\nТочное совпадение"]
VEC["Векторные\nСемантическое сходство\nСовпадение с эталоном"]
CUST["Кастомные\nG-Eval\nCustom Metric"]
end
subgraph Providers["☁️ Интерфейс провайдеров"]
direction LR
BASE["BaseLLMProvider"]
IMPL["OpenAI · Azure · Gemini · Claude\nDeepSeek · Qwen · Mistral · Groq\nGrok · Zhipu · Ollama · Custom"]
end
subgraph Data["📁 Генерация данных"]
direction LR
DG[DataGenerator]
FMT["PDF · DOCX · CSV\nJSON · HTML · Изображения"]
end
subgraph Output["📈 Вывод"]
direction LR
RES[EvalResult]
DASH[Дашборд]
end
Core --- Metrics
Metrics --- Providers
Core --- Data
Core --- Output
BASE --- IMPL Провайдеры LLM абстрагированы через единый интерфейс BaseLLMProvider, поэтому переключение между моделями не требует изменения логики оценки. Все метрики выполняются асинхронно для эффективного использования ресурсов.
Категории метрик¶
В таблице ниже перечислены все категории метрик, доступные в Eval AI Library. Каждая категория предназначена для оценки определённого аспекта вашей AI-системы.
| Категория | Метрики | Назначение |
|---|---|---|
| RAG | Answer Relevancy, Precision, Faithfulness, Contextual Relevancy/Precision/Recall, Bias, Toxicity | Оценка RAG-пайплайнов |
| Агенты | Tool Correctness, Task Success, Role Adherence, Knowledge Retention, Tool Errors | Оценка AI-агентов |
| Безопасность | Prompt Injection, Jailbreak, PII Leakage, Harmful Content, Policy Compliance, Restricted Refusal | Тестирование безопасности |
| Детерминированные | Exact Match, Contains, Starts/Ends With, Regex, JSON Schema, Format/Length Check, Language Detection, Non-Empty | Проверки без LLM |
| Векторные | Semantic Similarity, Reference Match | Оценка по эмбеддингам |
| Пользовательские | Custom Metric, G-Eval | Доменные критерии оценки |
Агрегация оценок¶
Eval AI Library использует Temperature-Controlled Verdict Aggregation via Generalized Power Mean -- новаторский подход, обеспечивающий гибкий скоринг через настраиваемые уровни строгости. Этот метод позволяет контролировать, насколько сильно единичные низкие вердикты влияют на итоговый score.
В отличие от простого среднего арифметического, обобщённое степенное среднее с параметром температуры позволяет настроить поведение агрегации от практически минимума (строгая оценка) до практически максимума (мягкая оценка). Это особенно важно для сценариев, где критически важна безопасность или, наоборот, допускается определённая степень вариативности.
| Температура | Поведение | Рекомендуется для |
|---|---|---|
| 0.1 | Строгая (близко к минимуму) | Приложения с критичной безопасностью, медицинские и юридические системы |
| 0.5 | Сбалансированная (среднее арифметическое) | Общая оценка, большинство типовых задач |
| 1.0 | Мягкая (близко к максимуму) | Креативные задачи, генерация контента |
Установка¶
Установите Eval AI Library с помощью pip:
Требуется Python 3.9 и выше. Библиотека поддерживает все основные операционные системы: Linux, macOS и Windows. Подробные инструкции по установке, настройке окружения и установке дополнительных зависимостей смотрите в руководстве по установке.