إنتقل إلى المحتوى الرئيسي

الفصل 2: إطار RAGAS

ما هو RAGAS؟​

RAGAS (Retrieval Augmented Generation Assessment) إطار لتقييم خطوط أنابيب RAG تلقائيًا باستخدام نماذج LLM.

التثبيت​

pip install ragas

الاستخدام الأساسي​

from ragas import evaluate
from ragas.metrics import (
faithfulness,
answer_relevancy,
context_precision,
context_recall
)
from datasets import Dataset

# Prepare evaluation data
data = {
"question": ["What is RAG?"],
"answer": ["RAG combines retrieval with generation..."],
"contexts": [["RAG is a technique that...", "It retrieves..."]],
"ground_truth": ["RAG is Retrieval Augmented Generation..."]
}

dataset = Dataset.from_dict(data)

# Evaluate
results = evaluate(
dataset,
metrics=[
faithfulness,
answer_relevancy,
context_precision,
context_recall
]
)

print(results)

مقاييس RAGAS​

المقياسالوصفالنطاق
faithfulnessالإجابة مثبتة في السياق0-1
answer_relevancyالإجابة تعالج السؤال0-1
context_precisionالوثائق المسترجعة ذات صلة0-1
context_recallاُسترجعت كل المعلومات اللازمة0-1

إنشاء مجموعة بيانات اختبار​

def create_eval_dataset(qa_pairs, rag_system):
"""Generate evaluation dataset from Q&A pairs"""
data = {"question": [], "answer": [], "contexts": [], "ground_truth": []}

for qa in qa_pairs:
question = qa["question"]
ground_truth = qa["expected_answer"]

# Get RAG response
response = rag_system.query(question)

data["question"].append(question)
data["answer"].append(response["answer"])
data["contexts"].append(response["contexts"])
data["ground_truth"].append(ground_truth)

return Dataset.from_dict(data)

تفسير النتائج​

الدرجةالتفسير
>0.9ممتاز
0.7-0.9جيد، مجال للتحسين
0.5-0.7يحتاج عملًا
<0.5مشكلات جوهرية

التقييم المستمر​

# Weekly evaluation pipeline
def weekly_eval(rag_system, test_questions):
dataset = create_eval_dataset(test_questions, rag_system)
results = evaluate(dataset, metrics=[...])

# Store results
save_metrics_to_db(results, timestamp=datetime.now())

# Alert if degradation
if results["faithfulness"] < 0.8:
send_alert("Faithfulness dropped below threshold!")