EmpathRAG / eval /run_curated_retrieval_audit.py
MukulRay's picture
Add curated corpus integration scaffold
fadd796
Raw
History Blame Contribute Delete
2.34 kB
"""
Audit curated-support retrieval without running the generator.
Run after Karthik's corpus has been validated and indexed:
python eval/run_curated_retrieval_audit.py
"""
from __future__ import annotations
import json
import sys
from pathlib import Path
sys.path.insert(0, "src")
from pipeline.pipeline import EmpathRAGPipeline
from pipeline.query_router import route_query
PROMPTS = [
"I'm so anxious about my thesis defense next week, I can't sleep.",
"My advisor rejected my work again and I don't know what to do.",
"I feel isolated in my program and I don't have anyone to talk to.",
"I think I might need counseling but I'm not sure where to start.",
"I'm burned out and falling behind on everything.",
"Can you help me find support for disability accommodations?",
"I don't know who to contact after hours if things get worse.",
]
RESULTS_PATH = Path("eval/curated_retrieval_audit.json")
def main() -> int:
pipeline = EmpathRAGPipeline(
retrieval_corpus="curated_support",
use_real_guardrail=True,
guardrail_threshold=0.5,
)
rows = []
for prompt in PROMPTS:
emotion = pipeline._classify_emotion(prompt)
pipeline.tracker.update(emotion, len(prompt.split()))
trajectory = pipeline.tracker.trajectory()
routed = route_query(prompt, emotion, trajectory)
retrieved = pipeline._retrieve(routed, emotion)
sources = pipeline._source_summaries(retrieved)
rows.append(
{
"prompt": prompt,
"emotion": emotion,
"trajectory": trajectory,
"routed_query": routed,
"sources": sources,
}
)
print("\nPROMPT:", prompt)
if not sources:
print(" NO SOURCES")
continue
for i, source in enumerate(sources[:3], 1):
print(
f" {i}. {source['source_name']} | {source['title']} | "
f"{source['topic']} | {source['risk_level']}"
)
if source["url"]:
print(f" {source['url']}")
RESULTS_PATH.write_text(json.dumps(rows, indent=2), encoding="utf-8")
print(f"\nSaved audit: {RESULTS_PATH}")
return 0
if __name__ == "__main__":
raise SystemExit(main())