VcRlAgent commited on
Commit
2c936f7
·
1 Parent(s): 08d20f8

Reranker and Debug Added

Browse files
Files changed (1) hide show
  1. app/routes/debug_routes.py +55 -6
app/routes/debug_routes.py CHANGED
@@ -1,10 +1,59 @@
 
 
 
 
 
 
 
 
 
 
1
  @router.post("/debug/retrieval")
2
  async def debug_retrieval(request: QueryRequest):
3
- results = retriever.retrieve(request.query)
4
- reranked = reranker.rerank(request.query, results, top_k=10)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
  return {
6
- "query": request.query,
7
- "raw_faiss_scores": [r["score"] for r in results],
8
- "reranked_scores": [r["rerank_score"] for r in reranked],
9
- "top_docs": [r["payload"].get("summary") for r in reranked[:5]]
 
 
 
 
 
 
 
 
 
 
10
  }
 
1
+ # app/routes/debug_routes.py
2
+ from fastapi import APIRouter
3
+ from app.models.jira_schema import QueryRequest
4
+ from app.services.retriever import retriever
5
+ from app.services.reranker import reranker
6
+ from app.utils.logger import setup_logger
7
+
8
+ logger = setup_logger(__name__)
9
+ router = APIRouter()
10
+
11
  @router.post("/debug/retrieval")
12
  async def debug_retrieval(request: QueryRequest):
13
+ """
14
+ Debug endpoint for inspecting retrieval + re-ranking behavior.
15
+ Returns:
16
+ - raw FAISS results (scores + payload snippets)
17
+ - reranked results
18
+ - delta (change in ordering)
19
+ """
20
+ query = request.query.strip()
21
+ logger.info(f"[DEBUG] Starting retrieval debug for query: {query}")
22
+
23
+ # --- Step 1: Raw FAISS retrieval
24
+ results = retriever.retrieve(query, top_k=10)
25
+ raw_scores = [r["score"] for r in results]
26
+
27
+ # --- Step 2: Re-ranking
28
+ reranked = reranker.rerank(query, results, top_k=10)
29
+ reranked_scores = [r.get("rerank_score", None) for r in reranked]
30
+
31
+ # --- Step 3: Compute deltas
32
+ deltas = {
33
+ "raw_top_doc": results[0]["payload"].get("summary") if results else None,
34
+ "reranked_top_doc": reranked[0]["payload"].get("summary") if reranked else None,
35
+ "raw_scores": raw_scores,
36
+ "reranked_scores": reranked_scores,
37
+ }
38
+
39
+ logger.info(f"[DEBUG] Retrieval@10 raw: {raw_scores}")
40
+ logger.info(f"[DEBUG] Retrieval@10 reranked: {reranked_scores}")
41
+ if deltas["raw_top_doc"] != deltas["reranked_top_doc"]:
42
+ logger.info("[DEBUG] ✅ Reranker changed top document ordering (improvement expected !).")
43
+
44
  return {
45
+ "query": query,
46
+ "raw_faiss_scores": raw_scores,
47
+ "reranked_scores": reranked_scores,
48
+ "raw_top_summary": deltas["raw_top_doc"],
49
+ "reranked_top_summary": deltas["reranked_top_doc"],
50
+ "reranked_docs": [
51
+ {
52
+ "score": round(r.get("rerank_score", 0.0), 3),
53
+ "summary": r["payload"].get("summary"),
54
+ "status": r["payload"].get("status"),
55
+ "priority": r["payload"].get("priority"),
56
+ }
57
+ for r in reranked[:5]
58
+ ],
59
  }