From fcb9eca375e26c05619110c8355e009b2f76959a Mon Sep 17 00:00:00 2001 From: Tim Hildebrandt <44113468+tim-hilde@users.noreply.github.com> Date: Thu, 16 Jan 2025 14:31:01 +0100 Subject: [PATCH 1/2] fix(prompt/mixin): Add name property and add it to saving/loading path. --- src/ragas/prompt/mixin.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/ragas/prompt/mixin.py b/src/ragas/prompt/mixin.py index c354a8d9e..195024efc 100644 --- a/src/ragas/prompt/mixin.py +++ b/src/ragas/prompt/mixin.py @@ -20,8 +20,9 @@ class PromptMixin: eg: [BaseSynthesizer][ragas.testset.synthesizers.base.BaseSynthesizer], [MetricWithLLM][ragas.metrics.base.MetricWithLLM] """ - def _get_prompts(self) -> t.Dict[str, PydanticPrompt]: + name: str = "" + def _get_prompts(self) -> t.Dict[str, PydanticPrompt]: prompts = {} for key, value in inspect.getmembers(self): if isinstance(value, PydanticPrompt): @@ -91,7 +92,7 @@ def save_prompts(self, path: str): for prompt_name, prompt in prompts.items(): # hash_hex = f"0x{hash(prompt) & 0xFFFFFFFFFFFFFFFF:016x}" prompt_file_name = os.path.join( - path, f"{prompt_name}_{prompt.language}.json" + path, f"{self.name}_{prompt_name}_{prompt.language}.json" ) prompt.save(prompt_file_name) @@ -113,7 +114,9 @@ def load_prompts(self, path: str, language: t.Optional[str] = None): loaded_prompts = {} for prompt_name, prompt in self.get_prompts().items(): - prompt_file_name = os.path.join(path, f"{prompt_name}_{language}.json") + prompt_file_name = os.path.join( + path, f"{self.name}_{prompt_name}_{language}.json" + ) loaded_prompt = prompt.__class__.load(prompt_file_name) loaded_prompts[prompt_name] = loaded_prompt return loaded_prompts From be4bbabf5642ab686512234d28afd4329213199a Mon Sep 17 00:00:00 2001 From: jjmachan Date: Tue, 21 Jan 2025 16:16:17 -0800 Subject: [PATCH 2/2] improve the condition when self.name is not available --- src/ragas/prompt/mixin.py | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/src/ragas/prompt/mixin.py b/src/ragas/prompt/mixin.py index 195024efc..17db3b682 100644 --- a/src/ragas/prompt/mixin.py +++ b/src/ragas/prompt/mixin.py @@ -91,10 +91,13 @@ def save_prompts(self, path: str): prompts = self.get_prompts() for prompt_name, prompt in prompts.items(): # hash_hex = f"0x{hash(prompt) & 0xFFFFFFFFFFFFFFFF:016x}" - prompt_file_name = os.path.join( - path, f"{self.name}_{prompt_name}_{prompt.language}.json" - ) - prompt.save(prompt_file_name) + if self.name == "": + file_name = os.path.join(path, f"{prompt_name}_{prompt.language}.json") + else: + file_name = os.path.join( + path, f"{self.name}_{prompt_name}_{prompt.language}.json" + ) + prompt.save(file_name) def load_prompts(self, path: str, language: t.Optional[str] = None): """ @@ -114,9 +117,12 @@ def load_prompts(self, path: str, language: t.Optional[str] = None): loaded_prompts = {} for prompt_name, prompt in self.get_prompts().items(): - prompt_file_name = os.path.join( - path, f"{self.name}_{prompt_name}_{language}.json" - ) - loaded_prompt = prompt.__class__.load(prompt_file_name) + if self.name == "": + file_name = os.path.join(path, f"{prompt_name}_{language}.json") + else: + file_name = os.path.join( + path, f"{self.name}_{prompt_name}_{language}.json" + ) + loaded_prompt = prompt.__class__.load(file_name) loaded_prompts[prompt_name] = loaded_prompt return loaded_prompts