Мы — команда AI-инженеров с 5+ летним опытом в NLP и 20+ внедрениями RAG. Без систематической RAGAS оценки качества RAG-система остаётся чёрным ящиком: вы не знаете, сколько галлюцинаций генерирует модель и как много релевантного контекста теряется. RAGAS (RAG Assessment) — самый популярный фреймворк для автоматической оценки, использующий LLM как судью и не требующий ручной разметки. На одном из проектов мы сократили ручную проверку ответов на 80%, сэкономив команде более 40% времени и существенно сократив бюджет на оценку. За 3–6 недель настраиваем полный pipeline оценки, интегрируем его в CI/CD и доводим метрики до 0.9+. Свяжитесь с нами для аудита вашей RAG-системы.
Что такое RAGAS и зачем он нужен?
RAGAS — это opensource-фреймворк для оценки качества RAG-систем. Он автоматически генерирует тестовые наборы на основе ваших документов и оценивает ответы LLM по пяти ключевым метрикам. Без RAGAS вы оцениваете качество вручную или не оцениваете вовсе, что ведёт к неконтролируемым галлюцинациям и потере контекста. RAGAS делает оценку объективной и воспроизводимой. Подробнее о фреймворке — на GitHub.
Метрики RAGAS
| Метрика | Что измеряет | Диапазон |
|---|---|---|
| Context Precision | Доля retrieved контекста, который реально нужен для ответа | 0–1 |
| Context Recall | Доля необходимого контекста, которая была retrieved | 0–1 |
| Faithfulness | Соответствие ответа retrieved контексту (нет галлюцинаций) | 0–1 |
| Answer Relevancy | Насколько ответ релевантен вопросу | 0–1 |
| Answer Correctness | Фактическая правильность ответа (требует ground truth) | 0–1 |
Как интерпретировать метрики RAGAS?
Context Precision ниже 0.7 сигнализирует: система извлекает много нерелевантного контекста. Решения — улучшить reranking, добавить фильтрацию по метаданным, уменьшить top_k.
Context Recall ниже 0.7: система не находит нужные документы. Решения — улучшить chunking, попробовать hybrid search, дообучить embedding модель.
Faithfulness ниже 0.8 — критический сигнал: модель галлюцинирует, выдумывает информацию, не подкреплённую контекстом. Решения — улучшить system prompt, добавить инструкцию «отвечай только на основе контекста», снизить temperature. Это самая важная метрика для юридических и медицинских RAG-систем.
Answer Relevancy ниже 0.8: ответы не по делу. Решения — улучшить prompt, добавить few-shot примеры желаемого формата.
Как внедрить RAGAS за 4 шага
- Подготовьте документы и создайте тестовый набор (минимум 200 вопросов). RAGAS автоматически сгенерирует вопросы разной сложности.
- Запустите baseline оценку по всем метрикам. Это займёт 1–2 дня.
- Проанализируйте результаты и выполните итерации оптимизации (улучшение retrieval, промпта, chunking).
- Интегрируйте continuous evaluation в CI/CD — теперь каждый коммит будет проверяться на падение качества.
Процесс настройки занимает 2–3 дня, генерация тестов — 1–2 дня, полный цикл с улучшениями — от 3 до 6 недель.
Установка и базовое использование RAGAS
from ragas import evaluate
from ragas.metrics import (
context_precision,
context_recall,
faithfulness,
answer_relevancy,
answer_correctness,
)
from datasets import Dataset
# Подготовка датасета для оценки
eval_data = {
"question": [
"Каков срок действия договора?",
"Кто несёт ответственность за задержку поставки?",
],
"answer": [
"Договор действует до 31 декабря.",
"Поставщик несёт ответственность за задержку сверх 5 рабочих дней.",
],
"contexts": [
["2.1. Настоящий Договор вступает в силу с момента подписания и действует до 31 декабря..."],
["4.3. В случае задержки поставки более чем на 5 рабочих дней Поставщик..."],
],
"ground_truths": [
"Договор действует до 31 декабря.",
"Ответственность несёт Поставщик при задержке более 5 рабочих дней.",
],
}
dataset = Dataset.from_dict(eval_data)
# Оценка
from langchain_openai import ChatOpenAI, OpenAIEmbeddings
from ragas.llms import LangchainLLMWrapper
from ragas.embeddings import LangchainEmbeddingsWrapper
evaluator_llm = LangchainLLMWrapper(ChatOpenAI(model="gpt-4o"))
evaluator_embeddings = LangchainEmbeddingsWrapper(OpenAIEmbeddings())
results = evaluate(
dataset,
metrics=[context_precision, context_recall, faithfulness, answer_relevancy],
llm=evaluator_llm,
embeddings=evaluator_embeddings,
)
print(results)
# {'context_precision': 0.88, 'context_recall': 0.82, 'faithfulness': 0.94, 'answer_relevancy': 0.91}
Автоматизированный тестовый набор: Testset Generation
RAGAS умеет генерировать тестовый набор из ваших документов:
from ragas.testset.generator import TestsetGenerator
from ragas.testset.evolutions import simple, reasoning, multi_context
generator = TestsetGenerator.with_openai()
# Генерация тестов разной сложности
testset = generator.generate_with_langchain_docs(
documents=your_documents,
test_size=100,
distributions={
simple: 0.5, # Простые вопросы по одному документу
reasoning: 0.3, # Требующие рассуждений
multi_context: 0.2, # Требующие нескольких документов
}
)
testset.to_pandas().to_csv("evaluation_testset.csv", index=False)
Практический кейс: итерации над RAG-системой юридического чат-бота
Из нашей практики: заказчик — юридическая компания с корпусом из 10 000 договоров. Исходный RAG на GPT-4o-mini и ChromaDB показывал низкие метрики. Мы провели три итерации оптимизации.
Исходное состояние (v1):
| Метрика | v1 |
|---|---|
| Context Precision | 0.61 |
| Context Recall | 0.68 |
| Faithfulness | 0.74 |
| Answer Relevancy | 0.79 |
Итерация 1: добавили hybrid search (sparse + dense). Context Recall вырос с 0.68 до 0.81 (+19 %).
Итерация 2: добавили Contextual Compression и reranker. Context Precision улучшилась с 0.61 до 0.84 (+38 %), Faithfulness — с 0.74 до 0.91 (+23 %).
Итерация 3: доработали system prompt с явным запретом галлюцинаций. Faithfulness достигла 0.95, Answer Relevancy — 0.88.
Финальное состояние (v4):
| Метрика | v4 |
|---|---|
| Context Precision | 0.84 |
| Context Recall | 0.81 |
| Faithfulness | 0.95 |
| Answer Relevancy | 0.88 |
RAGAS позволил автоматизировать оценку, что в 10 раз быстрее ручного ревью асессорами. Экономия бюджета на оценку составила десятки тысяч долларов на каждом проекте.
Continuous Evaluation в CI/CD
import pytest
@pytest.fixture(scope="session")
def rag_evaluation_results():
"""Запускает RAGAS оценку на тестовом наборе"""
return evaluate(evaluation_dataset, metrics=[faithfulness, context_recall])
def test_faithfulness_above_threshold(rag_evaluation_results):
assert rag_evaluation_results["faithfulness"] >= 0.85, \
f"Faithfulness {rag_evaluation_results['faithfulness']:.2f} below threshold 0.85"
def test_context_recall_above_threshold(rag_evaluation_results):
assert rag_evaluation_results["context_recall"] >= 0.75
Что входит в нашу работу по оценке RAG
- Настройка RAGAS pipeline под вашу инфраструктуру.
- Генерация репрезентативного тестового набора (200+ вопросов).
- Baseline оценка по 5 метрикам.
- 2–3 итерации по улучшению с конкретными рекомендациями.
- Интеграция continuous evaluation в ваш CI/CD.
- Отчёт с результатами и планом дальнейшей оптимизации.
Получите консультацию по оценке вашей RAG-системы — мы оценим проект и предложим план работ. Закажите аудит метрик прямо сейчас.







