From 7c6bf69c996da7e533f8c0319801b1e8c141e724 Mon Sep 17 00:00:00 2001
From: Ismail Ashraq <ismailashraq@Ismails-MacBook-Pro.local>
Date: Mon, 19 Aug 2024 11:00:39 +0500
Subject: [PATCH] raise openai errors

---
 semantic_router/encoders/openai.py | 9 +++++++--
 semantic_router/encoders/zure.py   | 8 ++++++--
 2 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/semantic_router/encoders/openai.py b/semantic_router/encoders/openai.py
index 6f80f257..db011956 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 ffb0d4b3..4caded0f 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
-- 
GitLab