From 4b21a2f4ed9963d65df8f01946a1b97d3bef44b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E0=AE=AE=E0=AE=A9=E0=AF=8B=E0=AE=9C=E0=AF=8D=E0=AE=95?= =?UTF-8?q?=E0=AF=81=E0=AE=AE=E0=AE=BE=E0=AE=B0=E0=AF=8D=20=E0=AE=AA?= =?UTF-8?q?=E0=AE=B4=E0=AE=A9=E0=AE=BF=E0=AE=9A=E0=AF=8D=E0=AE=9A=E0=AE=BE?= =?UTF-8?q?=E0=AE=AE=E0=AE=BF?= Date: Sat, 7 Dec 2024 09:06:47 +0530 Subject: [PATCH 1/3] Fix exception handling in convert_dict_to_response Update `raised_exception` to `Exception(error_args["message"])` in `convert_to_model_response_object` function. * Remove `setattr(raised_exception, "message", error_args["message"])` in `convert_to_model_response_object` function. * Keep `setattr(raised_exception, "status_code", error_args["status_code"])` in `convert_to_model_response_object` function. str(e) gives e.args and not e.message --- For more details, open the [Copilot Workspace session](https://copilot-workspace.githubnext.com/BerriAI/litellm?shareId=XXXX-XXXX-XXXX-XXXX). --- .../llm_response_utils/convert_dict_to_response.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/litellm/litellm_core_utils/llm_response_utils/convert_dict_to_response.py b/litellm/litellm_core_utils/llm_response_utils/convert_dict_to_response.py index 93926a81f4..2da2be4cc2 100644 --- a/litellm/litellm_core_utils/llm_response_utils/convert_dict_to_response.py +++ b/litellm/litellm_core_utils/llm_response_utils/convert_dict_to_response.py @@ -360,9 +360,8 @@ def convert_to_model_response_object( # noqa: PLR0915 else: message_str = str(response_object["error"]["message"]) error_args["message"] = message_str - raised_exception = Exception() + raised_exception = Exception(error_args["message"]) setattr(raised_exception, "status_code", error_args["status_code"]) - setattr(raised_exception, "message", error_args["message"]) raise raised_exception try: From 544caeb8fe96b665aa8aa7afb1d79c7a6f08ff1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E0=AE=AE=E0=AE=A9=E0=AF=8B=E0=AE=9C=E0=AF=8D=E0=AE=95?= =?UTF-8?q?=E0=AF=81=E0=AE=AE=E0=AE=BE=E0=AE=B0=E0=AF=8D=20=E0=AE=AA?= =?UTF-8?q?=E0=AE=B4=E0=AE=A9=E0=AE=BF=E0=AE=9A=E0=AF=8D=E0=AE=9A=E0=AE=BE?= =?UTF-8?q?=E0=AE=AE=E0=AE=BF?= Date: Sat, 7 Dec 2024 09:54:20 +0530 Subject: [PATCH 2/3] Set `error_text` to the `message` attribute of the exception if `error_text` is not already set * Use `getattr` to retrieve the `message` attribute from the exception object * Use the string representation of the exception if the `message` attribute is not present --- litellm/llms/OpenAI/openai.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/litellm/llms/OpenAI/openai.py b/litellm/llms/OpenAI/openai.py index 057340b513..48cab3ca68 100644 --- a/litellm/llms/OpenAI/openai.py +++ b/litellm/llms/OpenAI/openai.py @@ -867,6 +867,8 @@ class OpenAIChatCompletion(BaseLLM): error_response = getattr(e, "response", None) if error_headers is None and error_response: error_headers = getattr(error_response, "headers", None) + if not error_text: + error_text = getattr(e, "message", str(e)) raise OpenAIError( status_code=status_code, message=error_text, headers=error_headers ) From 28c158b1f29ba49d2985701d4860b036a03db23b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E0=AE=AE=E0=AE=A9=E0=AF=8B=E0=AE=9C=E0=AF=8D=E0=AE=95?= =?UTF-8?q?=E0=AF=81=E0=AE=AE=E0=AE=BE=E0=AE=B0=E0=AF=8D=20=E0=AE=AA?= =?UTF-8?q?=E0=AE=B4=E0=AE=A9=E0=AE=BF=E0=AE=9A=E0=AF=8D=E0=AE=9A=E0=AE=BE?= =?UTF-8?q?=E0=AE=AE=E0=AE=BF?= Date: Sat, 7 Dec 2024 10:06:31 +0530 Subject: [PATCH 3/3] Discard changes to litellm/litellm_core_utils/llm_response_utils/convert_dict_to_response.py --- .../llm_response_utils/convert_dict_to_response.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/litellm/litellm_core_utils/llm_response_utils/convert_dict_to_response.py b/litellm/litellm_core_utils/llm_response_utils/convert_dict_to_response.py index 2da2be4cc2..93926a81f4 100644 --- a/litellm/litellm_core_utils/llm_response_utils/convert_dict_to_response.py +++ b/litellm/litellm_core_utils/llm_response_utils/convert_dict_to_response.py @@ -360,8 +360,9 @@ def convert_to_model_response_object( # noqa: PLR0915 else: message_str = str(response_object["error"]["message"]) error_args["message"] = message_str - raised_exception = Exception(error_args["message"]) + raised_exception = Exception() setattr(raised_exception, "status_code", error_args["status_code"]) + setattr(raised_exception, "message", error_args["message"]) raise raised_exception try: