Мы — команда 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-системы — мы оценим проект и предложим план работ. Закажите аудит метрик прямо сейчас.







