atulkrs commited on
Commit
a8bb388
·
verified ·
1 Parent(s): f90ed23

Add full RAG pipeline: agent, rag_engine, generator, knowledge_base, full Gradio UI

Browse files
Files changed (1) hide show
  1. agent.py +5 -5
agent.py CHANGED
@@ -95,14 +95,14 @@ class MLOpsRAGAgent:
95
  logger.error(f"Retrieval failed: {e}")
96
  return [], []
97
 
98
- # ChromaDB returns cosine *distance* (lower = more similar).
99
- # A score threshold on distance would silently discard the best chunks,
100
- # so we pass all retrieved nodes to the Flan-T5 relevance check instead.
101
  scores = [self.rag.get_node_score(n) for n in nodes]
102
  logger.info(f"Raw node distances: {[round(s, 3) for s in scores]}")
103
 
104
- relevant = []
105
- for node in nodes:
 
 
 
106
  text = self.rag.get_node_text(node)
107
  try:
108
  if self.gen.check_relevance(query, text):
 
95
  logger.error(f"Retrieval failed: {e}")
96
  return [], []
97
 
 
 
 
98
  scores = [self.rag.get_node_score(n) for n in nodes]
99
  logger.info(f"Raw node distances: {[round(s, 3) for s in scores]}")
100
 
101
+ # Always keep the top 3 nodes (retriever returns them sorted by distance
102
+ # ascending, so these are the closest matches). Run the LLM relevance
103
+ # check only on nodes 4-6 to optionally widen the context.
104
+ relevant = list(nodes[:3])
105
+ for node in nodes[3:]:
106
  text = self.rag.get_node_text(node)
107
  try:
108
  if self.gen.check_relevance(query, text):