fix: prevent LITELLM.EXTRA_BODY from overriding existing parameters in LiteLLMAIHandler

This commit is contained in:
Abhinav Kumar
2025-07-07 21:20:25 +05:30
parent 12af211c13
commit 6a55bbcd23

View File

@ -365,11 +365,14 @@ class LiteLLMAIHandler(BaseAiHandler):
kwargs["extra_headers"] = litellm_extra_headers
# Support for custom OpenAI body fields (e.g., Flex Processing)
if get_settings().get("LITELLM.EXTRA_BODY", None):
if get_settings().litellm.extra_body:
try:
litellm_extra_body = json.loads(get_settings().litellm.extra_body)
if not isinstance(litellm_extra_body, dict):
raise ValueError("LITELLM.EXTRA_BODY must be a JSON object")
colliding_keys = kwargs.keys() & litellm_extra_body.keys()
if colliding_keys:
raise ValueError(f"LITELLM.EXTRA_BODY cannot override existing parameters: {', '.join(colliding_keys)}")
kwargs.update(litellm_extra_body)
except json.JSONDecodeError as e:
raise ValueError(f"LITELLM.EXTRA_BODY contains invalid JSON: {str(e)}")