fix(openai.py): fix error re-raising

This commit is contained in:
Krrish Dholakia 2024-08-27 17:06:25 -07:00
parent bd3057e495
commit 5b06ea136c

View file

@ -789,14 +789,8 @@ class OpenAIChatCompletion(BaseLLM):
headers = {} headers = {}
response = raw_response.parse() response = raw_response.parse()
return headers, response return headers, response
except OpenAIError as e:
raise e
except Exception as e: except Exception as e:
status_code = getattr(e, "status_code", 500) raise e
error_headers = getattr(e, "headers", None)
raise OpenAIError(
status_code=status_code, message=str(e), headers=error_headers
)
def make_sync_openai_chat_completion_request( def make_sync_openai_chat_completion_request(
self, self,
@ -820,14 +814,8 @@ class OpenAIChatCompletion(BaseLLM):
headers = {} headers = {}
response = raw_response.parse() response = raw_response.parse()
return headers, response return headers, response
except OpenAIError as e:
raise e
except Exception as e: except Exception as e:
status_code = getattr(e, "status_code", 500) raise e
error_headers = getattr(e, "headers", None)
raise OpenAIError(
status_code=status_code, message=str(e), headers=error_headers
)
def completion( def completion(
self, self,
@ -1046,13 +1034,14 @@ class OpenAIChatCompletion(BaseLLM):
else: else:
raise e raise e
except OpenAIError as e: except OpenAIError as e:
exception_mapping_worked = True
raise e raise e
except Exception as e: except Exception as e:
if hasattr(e, "status_code"): status_code = getattr(e, "status_code", 500)
raise OpenAIError(status_code=e.status_code, message=str(e)) error_headers = getattr(e, "headers", None)
else: error_text = getattr(e, "text", str(e))
raise OpenAIError(status_code=500, message=traceback.format_exc()) raise OpenAIError(
status_code=status_code, message=error_text, headers=error_headers
)
async def acompletion( async def acompletion(
self, self,
@ -1142,7 +1131,11 @@ class OpenAIChatCompletion(BaseLLM):
raise e raise e
# e.message # e.message
except Exception as e: except Exception as e:
raise e status_code = getattr(e, "status_code", 500)
error_headers = getattr(e, "headers", None)
raise OpenAIError(
status_code=status_code, message=str(e), headers=error_headers
)
def streaming( def streaming(
self, self,
@ -1274,22 +1267,34 @@ class OpenAIChatCompletion(BaseLLM):
except ( except (
Exception Exception
) as e: # need to exception handle here. async exceptions don't get caught in sync functions. ) as e: # need to exception handle here. async exceptions don't get caught in sync functions.
if isinstance(e, OpenAIError): if isinstance(e, OpenAIError):
raise e raise e
error_headers = getattr(e, "headers", None)
if response is not None and hasattr(response, "text"): if response is not None and hasattr(response, "text"):
raise OpenAIError( raise OpenAIError(
status_code=500, status_code=500,
message=f"{str(e)}\n\nOriginal Response: {response.text}", message=f"{str(e)}\n\nOriginal Response: {response.text}",
headers=error_headers,
) )
else: else:
if type(e).__name__ == "ReadTimeout": if type(e).__name__ == "ReadTimeout":
raise OpenAIError( raise OpenAIError(
status_code=408, message=f"{type(e).__name__}" status_code=408,
message=f"{type(e).__name__}",
headers=error_headers,
) )
elif hasattr(e, "status_code"): elif hasattr(e, "status_code"):
raise OpenAIError(status_code=e.status_code, message=str(e)) raise OpenAIError(
status_code=e.status_code,
message=str(e),
headers=error_headers,
)
else: else:
raise OpenAIError(status_code=500, message=f"{str(e)}") raise OpenAIError(
status_code=500, message=f"{str(e)}", headers=error_headers
)
# Embedding # Embedding
async def make_openai_embedding_request( async def make_openai_embedding_request(