diff options
Diffstat (limited to '.venv/lib/python3.12/site-packages/litellm/llms/hosted_vllm/chat/transformation.py')
-rw-r--r-- | .venv/lib/python3.12/site-packages/litellm/llms/hosted_vllm/chat/transformation.py | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/litellm/llms/hosted_vllm/chat/transformation.py b/.venv/lib/python3.12/site-packages/litellm/llms/hosted_vllm/chat/transformation.py new file mode 100644 index 00000000..9332e987 --- /dev/null +++ b/.venv/lib/python3.12/site-packages/litellm/llms/hosted_vllm/chat/transformation.py @@ -0,0 +1,40 @@ +""" +Translate from OpenAI's `/v1/chat/completions` to VLLM's `/v1/chat/completions` +""" + +from typing import Optional, Tuple + +from litellm.secret_managers.main import get_secret_str + +from ....utils import _remove_additional_properties, _remove_strict_from_schema +from ...openai.chat.gpt_transformation import OpenAIGPTConfig + + +class HostedVLLMChatConfig(OpenAIGPTConfig): + def map_openai_params( + self, + non_default_params: dict, + optional_params: dict, + model: str, + drop_params: bool, + ) -> dict: + _tools = non_default_params.pop("tools", None) + if _tools is not None: + # remove 'additionalProperties' from tools + _tools = _remove_additional_properties(_tools) + # remove 'strict' from tools + _tools = _remove_strict_from_schema(_tools) + if _tools is not None: + non_default_params["tools"] = _tools + return super().map_openai_params( + non_default_params, optional_params, model, drop_params + ) + + def _get_openai_compatible_provider_info( + self, api_base: Optional[str], api_key: Optional[str] + ) -> Tuple[Optional[str], Optional[str]]: + api_base = api_base or get_secret_str("HOSTED_VLLM_API_BASE") # type: ignore + dynamic_api_key = ( + api_key or get_secret_str("HOSTED_VLLM_API_KEY") or "fake-api-key" + ) # vllm does not require an api key + return api_base, dynamic_api_key |