Spaces:
Running
Running
| 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 |