Spaces:
Sleeping
Sleeping
Download src/eval.py from beastLucifer/Rag-ag: direct link, hf CLI and curl.
- Browser
- Download file 1.02 kB
-
https://huggingface.co/spaces/beastLucifer/Rag-ag/resolve/main/src/eval.py
- Command line
-
hf download hf://spaces/beastLucifer/Rag-ag/src/eval.py
-
curl -L -o eval.py https://huggingface.co/spaces/beastLucifer/Rag-ag/resolve/main/src/eval.py
1.02 kB
| from datasets import Dataset | |
| from ragas import evaluate | |
| from ragas.llms import llm_factory | |
| from ragas.metrics.collections import Faithfulness, ResponseRelevancy, ContextPrecision | |
| from src.agent import app | |
| # Ragas 2025: Experiment-based factory | |
| judge_llm = llm_factory("gemini-2.0-flash") | |
| def evaluate_agent(questions: list, references: list): | |
| """MNC-grade verification of RAG pipeline quality.""" | |
| results = [] | |
| for q, r in zip(questions, references): | |
| output = app.invoke({"messages": [("user", q)]}) | |
| results.append({ | |
| "user_input": q, | |
| "response": output["messages"][-1].content, | |
| "retrieved_contexts": [m.content for m in output["messages"] if hasattr(m, "tool_call_id")], | |
| "reference": r | |
| }) | |
| dataset = Dataset.from_list(results) | |
| metrics = [Faithfulness(), ResponseRelevancy(), ContextPrecision()] | |
| # Evaluate with Gemini judge | |
| return evaluate(dataset=dataset, metrics=metrics, llm=judge_llm) |