From e76fdb5d2f334ce1341b0cefa5a60ebd575df3f1 Mon Sep 17 00:00:00 2001 From: Shobana Marannan <51772793+mshobana@users.noreply.github.com> Date: Fri, 18 Apr 2025 17:19:56 +0530 Subject: [PATCH] Update the logic of answer_relevance as per the definition Calling generate 3 times gives the questions with exact words every time. generate_multiple tends to give semantically matching questions. --- src/ragas/metrics/_answer_relevance.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/ragas/metrics/_answer_relevance.py b/src/ragas/metrics/_answer_relevance.py index 03b6ea4f9..ab0d6f79c 100644 --- a/src/ragas/metrics/_answer_relevance.py +++ b/src/ragas/metrics/_answer_relevance.py @@ -139,15 +139,12 @@ async def _ascore(self, row: t.Dict, callbacks: Callbacks) -> float: assert self.llm is not None, "LLM is not set" prompt_input = ResponseRelevanceInput(response=row["response"]) - tasks = [ - self.question_generation.generate( + responses = await self.question_generation.generate_multiple( + n=self.strictness, data=prompt_input, llm=self.llm, callbacks=callbacks, - ) - for _ in range(self.strictness) - ] - responses = await asyncio.gather(*tasks) + ) return self._calculate_score(responses, row)