diff --git a/semantic_router/encoders/openai.py b/semantic_router/encoders/openai.py index 6f80f2576c63aadedacc2d5f47671319b65bdda6..db011956dbe955dd984f91f930e8a48a262a9d88 100644 --- a/semantic_router/encoders/openai.py +++ b/semantic_router/encoders/openai.py @@ -123,11 +123,13 @@ class OpenAIEncoder(BaseEncoder): break except OpenAIError as e: logger.error("Exception occurred", exc_info=True) - if self.max_retries != 0: + if self.max_retries != 0 and j < self.max_retries: sleep(2**j) logger.warning( f"Retrying in {2**j} seconds due to OpenAIError: {e}" ) + else: + raise except Exception as e: logger.error(f"OpenAI API call failed. Error: {e}") @@ -178,11 +180,14 @@ class OpenAIEncoder(BaseEncoder): break except OpenAIError as e: logger.error("Exception occurred", exc_info=True) - if self.max_retries != 0: + if self.max_retries != 0 and j < self.max_retries: await asleep(2**j) logger.warning( f"Retrying in {2**j} seconds due to OpenAIError: {e}" ) + else: + raise + except Exception as e: logger.error(f"OpenAI API call failed. Error: {e}") raise ValueError(f"OpenAI API call failed. Error: {e}") from e diff --git a/semantic_router/encoders/zure.py b/semantic_router/encoders/zure.py index ffb0d4b361360960d7e5f156d960fc21c03167ee..4caded0f17028ad9f64d92c574a08ac3e786eb65 100644 --- a/semantic_router/encoders/zure.py +++ b/semantic_router/encoders/zure.py @@ -114,11 +114,13 @@ class AzureOpenAIEncoder(BaseEncoder): break except OpenAIError as e: logger.error("Exception occurred", exc_info=True) - if self.max_retries != 0: + if self.max_retries != 0 and j < self.max_retries: sleep(2**j) logger.warning( f"Retrying in {2**j} seconds due to OpenAIError: {e}" ) + else: + raise except Exception as e: logger.error(f"Azure OpenAI API call failed. Error: {e}") raise ValueError(f"Azure OpenAI API call failed. Error: {e}") from e @@ -151,11 +153,13 @@ class AzureOpenAIEncoder(BaseEncoder): except OpenAIError as e: logger.error("Exception occurred", exc_info=True) - if self.max_retries != 0: + if self.max_retries != 0 and j < self.max_retries: await asleep(2**j) logger.warning( f"Retrying in {2**j} seconds due to OpenAIError: {e}" ) + else: + raise except Exception as e: logger.error(f"Azure OpenAI API call failed. Error: {e}") raise ValueError(f"Azure OpenAI API call failed. Error: {e}") from e