Reflex_rag / src /verification /self_correction.py
Kalp Kanungo
Removed API key, added env-based config
64f0d32
raw
history blame contribute delete
867 Bytes
class SelfCorrector:
def refine_query(self, query):
if "how" in query:
return query + " explanation mechanism"
if "what" in query:
return query + " definition details"
return query + " detailed explanation"
def correct(self, query, retriever, generator, checker):
results = retriever.retrieve_multi_hop(query, top_k=5)
answer, sources = generator.generate(query, results)
is_valid, score = checker.is_grounded(answer, results)
if is_valid:
return answer, sources, score, False
new_query = self.refine_query(query)
results = retriever.retrieve_multi_hop(new_query, top_k=5)
answer, sources = generator.generate(new_query, results)
is_valid, score = checker.is_grounded(answer, results)
return answer, sources, score, True