about summary refs log tree commit diff
path: root/.venv/lib/python3.12/site-packages/litellm/proxy/common_utils/swagger_utils.py
diff options
context:
space:
mode:
Diffstat (limited to '.venv/lib/python3.12/site-packages/litellm/proxy/common_utils/swagger_utils.py')
-rw-r--r--.venv/lib/python3.12/site-packages/litellm/proxy/common_utils/swagger_utils.py48
1 files changed, 48 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/litellm/proxy/common_utils/swagger_utils.py b/.venv/lib/python3.12/site-packages/litellm/proxy/common_utils/swagger_utils.py
new file mode 100644
index 00000000..75a64707
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/litellm/proxy/common_utils/swagger_utils.py
@@ -0,0 +1,48 @@
+from typing import Any, Dict
+
+from pydantic import BaseModel, Field
+
+from litellm.exceptions import LITELLM_EXCEPTION_TYPES
+
+
+class ErrorResponse(BaseModel):
+    detail: Dict[str, Any] = Field(
+        ...,
+        example={  # type: ignore
+            "error": {
+                "message": "Error message",
+                "type": "error_type",
+                "param": "error_param",
+                "code": "error_code",
+            }
+        },
+    )
+
+
+# Define a function to get the status code
+def get_status_code(exception):
+    if hasattr(exception, "status_code"):
+        return exception.status_code
+    # Default status codes for exceptions without a status_code attribute
+    if exception.__name__ == "Timeout":
+        return 408  # Request Timeout
+    if exception.__name__ == "APIConnectionError":
+        return 503  # Service Unavailable
+    return 500  # Internal Server Error as default
+
+
+# Create error responses
+ERROR_RESPONSES = {
+    get_status_code(exception): {
+        "model": ErrorResponse,
+        "description": exception.__doc__ or exception.__name__,
+    }
+    for exception in LITELLM_EXCEPTION_TYPES
+}
+
+# Ensure we have a 500 error response
+if 500 not in ERROR_RESPONSES:
+    ERROR_RESPONSES[500] = {
+        "model": ErrorResponse,
+        "description": "Internal Server Error",
+    }