From 7683b72c4284eab0bccf5ce90f42fc6e62413a2b Mon Sep 17 00:00:00 2001 From: chenmoneygithub Date: Mon, 24 Feb 2025 22:26:31 -0800 Subject: [PATCH] style fix for base adapter --- dspy/adapters/base.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/dspy/adapters/base.py b/dspy/adapters/base.py index d6b5974919..e43e1f5847 100644 --- a/dspy/adapters/base.py +++ b/dspy/adapters/base.py @@ -32,12 +32,15 @@ def __call__(self, lm, lm_kwargs, signature, demos, inputs): value = self.parse(signature, output) - assert set(value.keys()) == set(signature.output_fields.keys()), \ - f"Expected {signature.output_fields.keys()} but got {value.keys()}" - + if set(value.keys()) != set(signature.output_fields.keys()): + raise ValueError( + "Parsed output fields do not match signature output fields. " + f"Expected: {set(signature.output_fields.keys())}, Got: {set(value.keys())}" + ) + if output_logprobs is not None: value["logprobs"] = output_logprobs - + values.append(value) return values @@ -46,18 +49,19 @@ def __call__(self, lm, lm_kwargs, signature, demos, inputs): if isinstance(e, ContextWindowExceededError): # On context window exceeded error, we don't want to retry with a different adapter. raise e - from .json_adapter import JSONAdapter + from dspy.adapters.json_adapter import JSONAdapter + if not isinstance(self, JSONAdapter): return JSONAdapter()(lm, lm_kwargs, signature, demos, inputs) raise e @abstractmethod def format(self, signature, demos, inputs): - raise NotImplementedError + raise NotImplementedError @abstractmethod def parse(self, signature, completion): - raise NotImplementedError + raise NotImplementedError def format_finetune_data(self, signature, demos, inputs, outputs): raise NotImplementedError