mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-06 02:48:13 +00:00
Merge pull request #4862 from BerriAI/litellm_fix_unsupported_params_Error
[Fix-litellm python] Raise correct error for UnsupportedParams Error
This commit is contained in:
commit
53dd47c5cb
4 changed files with 36 additions and 14 deletions
|
|
@ -888,6 +888,7 @@ from .exceptions import (
|
|||
APIError,
|
||||
Timeout,
|
||||
APIConnectionError,
|
||||
UnsupportedParamsError,
|
||||
APIResponseValidationError,
|
||||
UnprocessableEntityError,
|
||||
InternalServerError,
|
||||
|
|
|
|||
|
|
@ -682,11 +682,39 @@ class JSONSchemaValidationError(APIError):
|
|||
)
|
||||
|
||||
|
||||
class UnsupportedParamsError(BadRequestError):
|
||||
def __init__(
|
||||
self,
|
||||
message,
|
||||
llm_provider: Optional[str] = None,
|
||||
model: Optional[str] = None,
|
||||
status_code: int = 400,
|
||||
response: Optional[httpx.Response] = None,
|
||||
litellm_debug_info: Optional[str] = None,
|
||||
max_retries: Optional[int] = None,
|
||||
num_retries: Optional[int] = None,
|
||||
):
|
||||
self.status_code = 400
|
||||
self.message = "litellm.UnsupportedParamsError: {}".format(message)
|
||||
self.model = model
|
||||
self.llm_provider = llm_provider
|
||||
self.litellm_debug_info = litellm_debug_info
|
||||
response = response or httpx.Response(
|
||||
status_code=self.status_code,
|
||||
request=httpx.Request(
|
||||
method="GET", url="https://litellm.ai"
|
||||
), # mock request object
|
||||
)
|
||||
self.max_retries = max_retries
|
||||
self.num_retries = num_retries
|
||||
|
||||
|
||||
LITELLM_EXCEPTION_TYPES = [
|
||||
AuthenticationError,
|
||||
NotFoundError,
|
||||
BadRequestError,
|
||||
UnprocessableEntityError,
|
||||
UnsupportedParamsError,
|
||||
Timeout,
|
||||
PermissionDeniedError,
|
||||
RateLimitError,
|
||||
|
|
|
|||
|
|
@ -2,18 +2,19 @@
|
|||
# This tests chaos monkeys - if random parts of the system are broken / things aren't sent correctly - what happens.
|
||||
# Expect to add more edge cases to this over time.
|
||||
|
||||
import sys, os
|
||||
import os
|
||||
import sys
|
||||
import traceback
|
||||
|
||||
import pytest
|
||||
|
||||
sys.path.insert(
|
||||
0, os.path.abspath("../..")
|
||||
) # Adds the parent directory to the system path
|
||||
import litellm
|
||||
from litellm import embedding, completion
|
||||
from litellm import completion, embedding
|
||||
from litellm.utils import Message
|
||||
|
||||
|
||||
# litellm.set_verbose = True
|
||||
user_message = "Hello, how are you?"
|
||||
messages = [{"content": user_message, "role": "user"}]
|
||||
|
|
@ -74,6 +75,8 @@ def test_completion_invalid_param_cohere():
|
|||
response = completion(model="command-nightly", messages=messages, seed=12)
|
||||
pytest.fail(f"This should have failed cohere does not support `seed` parameter")
|
||||
except Exception as e:
|
||||
assert isinstance(e, litellm.UnsupportedParamsError)
|
||||
print("got an exception=", str(e))
|
||||
if " cohere does not support parameters: {'seed': 12}" in str(e):
|
||||
pass
|
||||
else:
|
||||
|
|
|
|||
|
|
@ -129,6 +129,7 @@ from .exceptions import (
|
|||
ServiceUnavailableError,
|
||||
Timeout,
|
||||
UnprocessableEntityError,
|
||||
UnsupportedParamsError,
|
||||
)
|
||||
from .proxy._types import KeyManagementSystem
|
||||
from .types.llms.openai import (
|
||||
|
|
@ -225,17 +226,6 @@ last_fetched_at_keys = None
|
|||
# }
|
||||
|
||||
|
||||
class UnsupportedParamsError(Exception):
|
||||
def __init__(self, status_code, message):
|
||||
self.status_code = status_code
|
||||
self.message = message
|
||||
self.request = httpx.Request(method="POST", url=" https://openai.api.com/v1/")
|
||||
self.response = httpx.Response(status_code=status_code, request=self.request)
|
||||
super().__init__(
|
||||
self.message
|
||||
) # Call the base class constructor with the parameters it needs
|
||||
|
||||
|
||||
############################################################
|
||||
def print_verbose(
|
||||
print_statement,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue