Spaces:
Build error
Build error
File size: 1,922 Bytes
6a8fee8 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | import os
import json
import argparse
from backend.animetix.services import AnimetixService
from core.domain.services.ragas_eval_service import RagasEvalService
def run_mlops_eval():
"""
Lance une évaluation automatique de la qualité de l'IA sur un échantillon de requêtes.
Retourne un dictionnaire de stats pour le pipeline MLOps.
"""
print("🧪 Starting Automated RAG Evaluation (RAGAS)...")
animetix = AnimetixService()
judge = animetix.inference_adapter
eval_service = RagasEvalService(judge_engine=judge)
# Échantillon de test (Golden Dataset simplifié)
test_queries = [
{"q": "Qui est le créateur de One Piece ?", "type": "Anime", "ctx": "Eiichiro Oda"},
{"q": "Quelle est l'intrigue de Akira ?", "type": "Movie", "ctx": "Katsuhiro Otomo, néo-tokyo"}
]
all_scores = []
for item in test_queries:
print(f"🧐 Evaluating query: '{item['q']}'")
# 1. Génération de la réponse
response = animetix.agentic_rag.plan_and_solve(item['q'], item['type'])
# 2. Évaluation
scores = eval_service.evaluate_response(item['q'], item['ctx'], response)
all_scores.append({"query": item['q'], "scores": scores})
# Stats Finales
avg_faith = sum(s['scores']['faithfulness'] for s in all_scores) / len(all_scores)
avg_relevancy = sum(s['scores']['answer_relevancy'] for s in all_scores) / len(all_scores)
report = {
"avg_faithfulness": avg_faith,
"avg_answer_relevancy": avg_relevancy,
"timestamp": str(datetime.now())
}
print("\n" + "═"*30)
print(f"📊 MLOPS REPORT")
print(f"✅ Avg Faithfulness: {avg_faith:.2f}")
print(f"🎯 Avg Relevancy: {avg_relevancy:.2f}")
print("═"*30)
return report
if __name__ == "__main__":
from datetime import datetime
run_mlops_eval()
|