Ми — команда 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-системи — ми оцінимо проект та запропонуємо план робіт. Замовте аудит метрик прямо зараз.







