mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-07 02:59:05 +00:00
perf(utils): lazy load 15+ unused imports to reduce import time
- Move BaseBatchesConfig, BaseContainerConfig, BaseEmbeddingConfig, BaseImageEditConfig, BaseImageGenerationConfig, BaseImageVariationConfig, BasePassthroughConfig, BaseRealtimeConfig, BaseRerankConfig, BaseVectorStoreConfig, BaseVectorStoreFilesConfig, BaseVideoConfig to lazy loading - Move ANTHROPIC_API_ONLY_HEADERS, AnthropicThinkingParam, RerankResponse to lazy loading - Move ChatCompletionDeltaToolCallChunk, ChatCompletionToolCallChunk, ChatCompletionToolCallFunctionChunk, LiteLLM_Params to lazy loading - Add type stubs to TYPE_CHECKING block for mypy support - Add lazy loading handlers in __getattr__ method - These imports are not used in utils.py runtime code, only in type annotations (safe with from __future__ import annotations)
This commit is contained in:
parent
dd1ccec734
commit
9bacbc32f2
1 changed files with 216 additions and 29 deletions
245
litellm/utils.py
245
litellm/utils.py
|
|
@ -149,10 +149,6 @@ def _get_cached_audio_utils():
|
||||||
_audio_utils_module = litellm.litellm_core_utils.audio_utils.utils
|
_audio_utils_module = litellm.litellm_core_utils.audio_utils.utils
|
||||||
return _audio_utils_module
|
return _audio_utils_module
|
||||||
|
|
||||||
from litellm.types.llms.anthropic import (
|
|
||||||
ANTHROPIC_API_ONLY_HEADERS,
|
|
||||||
AnthropicThinkingParam,
|
|
||||||
)
|
|
||||||
from litellm.types.llms.openai import (
|
from litellm.types.llms.openai import (
|
||||||
AllMessageValues,
|
AllMessageValues,
|
||||||
AllPromptValues,
|
AllPromptValues,
|
||||||
|
|
@ -163,7 +159,6 @@ from litellm.types.llms.openai import (
|
||||||
OpenAITextCompletionUserMessage,
|
OpenAITextCompletionUserMessage,
|
||||||
OpenAIWebSearchOptions,
|
OpenAIWebSearchOptions,
|
||||||
)
|
)
|
||||||
from litellm.types.rerank import RerankResponse
|
|
||||||
from litellm.types.utils import FileTypes # type: ignore
|
from litellm.types.utils import FileTypes # type: ignore
|
||||||
from litellm.types.utils import (
|
from litellm.types.utils import (
|
||||||
OPENAI_RESPONSE_HEADERS,
|
OPENAI_RESPONSE_HEADERS,
|
||||||
|
|
@ -342,29 +337,41 @@ if TYPE_CHECKING:
|
||||||
reset_retry_policy,
|
reset_retry_policy,
|
||||||
)
|
)
|
||||||
from litellm.secret_managers.main import get_secret
|
from litellm.secret_managers.main import get_secret
|
||||||
|
# Type stubs for lazy-loaded config classes and types
|
||||||
|
from litellm.llms.base_llm.batches.transformation import BaseBatchesConfig
|
||||||
|
from litellm.llms.base_llm.containers.transformation import BaseContainerConfig
|
||||||
|
from litellm.llms.base_llm.embedding.transformation import BaseEmbeddingConfig
|
||||||
|
from litellm.llms.base_llm.image_edit.transformation import BaseImageEditConfig
|
||||||
|
from litellm.llms.base_llm.image_generation.transformation import (
|
||||||
|
BaseImageGenerationConfig,
|
||||||
|
)
|
||||||
|
from litellm.llms.base_llm.image_variations.transformation import (
|
||||||
|
BaseImageVariationConfig,
|
||||||
|
)
|
||||||
|
from litellm.llms.base_llm.passthrough.transformation import BasePassthroughConfig
|
||||||
|
from litellm.llms.base_llm.realtime.transformation import BaseRealtimeConfig
|
||||||
|
from litellm.llms.base_llm.rerank.transformation import BaseRerankConfig
|
||||||
|
from litellm.llms.base_llm.vector_store.transformation import BaseVectorStoreConfig
|
||||||
|
from litellm.llms.base_llm.vector_store_files.transformation import (
|
||||||
|
BaseVectorStoreFilesConfig,
|
||||||
|
)
|
||||||
|
from litellm.llms.base_llm.videos.transformation import BaseVideoConfig
|
||||||
|
from litellm.types.llms.anthropic import (
|
||||||
|
ANTHROPIC_API_ONLY_HEADERS,
|
||||||
|
AnthropicThinkingParam,
|
||||||
|
)
|
||||||
|
from litellm.types.rerank import RerankResponse
|
||||||
|
from litellm.types.llms.openai import (
|
||||||
|
ChatCompletionDeltaToolCallChunk,
|
||||||
|
ChatCompletionToolCallChunk,
|
||||||
|
ChatCompletionToolCallFunctionChunk,
|
||||||
|
)
|
||||||
|
from litellm.types.router import LiteLLM_Params
|
||||||
|
|
||||||
from litellm.llms.base_llm.batches.transformation import BaseBatchesConfig
|
|
||||||
from litellm.llms.base_llm.chat.transformation import BaseConfig
|
from litellm.llms.base_llm.chat.transformation import BaseConfig
|
||||||
from litellm.llms.base_llm.completion.transformation import BaseTextCompletionConfig
|
from litellm.llms.base_llm.completion.transformation import BaseTextCompletionConfig
|
||||||
from litellm.llms.base_llm.containers.transformation import BaseContainerConfig
|
|
||||||
from litellm.llms.base_llm.embedding.transformation import BaseEmbeddingConfig
|
|
||||||
from litellm.llms.base_llm.image_edit.transformation import BaseImageEditConfig
|
|
||||||
from litellm.llms.base_llm.image_generation.transformation import (
|
|
||||||
BaseImageGenerationConfig,
|
|
||||||
)
|
|
||||||
from litellm.llms.base_llm.image_variations.transformation import (
|
|
||||||
BaseImageVariationConfig,
|
|
||||||
)
|
|
||||||
from litellm.llms.base_llm.passthrough.transformation import BasePassthroughConfig
|
|
||||||
from litellm.llms.base_llm.realtime.transformation import BaseRealtimeConfig
|
|
||||||
from litellm.llms.base_llm.rerank.transformation import BaseRerankConfig
|
|
||||||
from litellm.llms.base_llm.responses.transformation import BaseResponsesAPIConfig
|
from litellm.llms.base_llm.responses.transformation import BaseResponsesAPIConfig
|
||||||
from litellm.llms.base_llm.skills.transformation import BaseSkillsAPIConfig
|
from litellm.llms.base_llm.skills.transformation import BaseSkillsAPIConfig
|
||||||
from litellm.llms.base_llm.vector_store.transformation import BaseVectorStoreConfig
|
|
||||||
from litellm.llms.base_llm.vector_store_files.transformation import (
|
|
||||||
BaseVectorStoreFilesConfig,
|
|
||||||
)
|
|
||||||
from litellm.llms.base_llm.videos.transformation import BaseVideoConfig
|
|
||||||
|
|
||||||
from ._logging import _is_debugging_on, verbose_logger
|
from ._logging import _is_debugging_on, verbose_logger
|
||||||
from .caching.caching import (
|
from .caching.caching import (
|
||||||
|
|
@ -392,12 +399,6 @@ from .exceptions import (
|
||||||
UnprocessableEntityError,
|
UnprocessableEntityError,
|
||||||
UnsupportedParamsError,
|
UnsupportedParamsError,
|
||||||
)
|
)
|
||||||
from .types.llms.openai import (
|
|
||||||
ChatCompletionDeltaToolCallChunk,
|
|
||||||
ChatCompletionToolCallChunk,
|
|
||||||
ChatCompletionToolCallFunctionChunk,
|
|
||||||
)
|
|
||||||
from .types.router import LiteLLM_Params
|
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from litellm import MockException
|
from litellm import MockException
|
||||||
|
|
@ -9226,4 +9227,190 @@ def __getattr__(name: str) -> Any: # noqa: PLR0915
|
||||||
_globals["BaseAudioTranscriptionConfig"] = _BaseAudioTranscriptionConfig
|
_globals["BaseAudioTranscriptionConfig"] = _BaseAudioTranscriptionConfig
|
||||||
return _globals["BaseAudioTranscriptionConfig"]
|
return _globals["BaseAudioTranscriptionConfig"]
|
||||||
|
|
||||||
|
# Lazy load BaseBatchesConfig to avoid loading at module import time
|
||||||
|
if name == "BaseBatchesConfig":
|
||||||
|
# Check if already cached
|
||||||
|
if "BaseBatchesConfig" not in _globals:
|
||||||
|
from litellm.llms.base_llm.batches.transformation import (
|
||||||
|
BaseBatchesConfig as _BaseBatchesConfig,
|
||||||
|
)
|
||||||
|
_globals["BaseBatchesConfig"] = _BaseBatchesConfig
|
||||||
|
return _globals["BaseBatchesConfig"]
|
||||||
|
|
||||||
|
# Lazy load BaseContainerConfig to avoid loading at module import time
|
||||||
|
if name == "BaseContainerConfig":
|
||||||
|
# Check if already cached
|
||||||
|
if "BaseContainerConfig" not in _globals:
|
||||||
|
from litellm.llms.base_llm.containers.transformation import (
|
||||||
|
BaseContainerConfig as _BaseContainerConfig,
|
||||||
|
)
|
||||||
|
_globals["BaseContainerConfig"] = _BaseContainerConfig
|
||||||
|
return _globals["BaseContainerConfig"]
|
||||||
|
|
||||||
|
# Lazy load BaseEmbeddingConfig to avoid loading at module import time
|
||||||
|
if name == "BaseEmbeddingConfig":
|
||||||
|
# Check if already cached
|
||||||
|
if "BaseEmbeddingConfig" not in _globals:
|
||||||
|
from litellm.llms.base_llm.embedding.transformation import (
|
||||||
|
BaseEmbeddingConfig as _BaseEmbeddingConfig,
|
||||||
|
)
|
||||||
|
_globals["BaseEmbeddingConfig"] = _BaseEmbeddingConfig
|
||||||
|
return _globals["BaseEmbeddingConfig"]
|
||||||
|
|
||||||
|
# Lazy load BaseImageEditConfig to avoid loading at module import time
|
||||||
|
if name == "BaseImageEditConfig":
|
||||||
|
# Check if already cached
|
||||||
|
if "BaseImageEditConfig" not in _globals:
|
||||||
|
from litellm.llms.base_llm.image_edit.transformation import (
|
||||||
|
BaseImageEditConfig as _BaseImageEditConfig,
|
||||||
|
)
|
||||||
|
_globals["BaseImageEditConfig"] = _BaseImageEditConfig
|
||||||
|
return _globals["BaseImageEditConfig"]
|
||||||
|
|
||||||
|
# Lazy load BaseImageGenerationConfig to avoid loading at module import time
|
||||||
|
if name == "BaseImageGenerationConfig":
|
||||||
|
# Check if already cached
|
||||||
|
if "BaseImageGenerationConfig" not in _globals:
|
||||||
|
from litellm.llms.base_llm.image_generation.transformation import (
|
||||||
|
BaseImageGenerationConfig as _BaseImageGenerationConfig,
|
||||||
|
)
|
||||||
|
_globals["BaseImageGenerationConfig"] = _BaseImageGenerationConfig
|
||||||
|
return _globals["BaseImageGenerationConfig"]
|
||||||
|
|
||||||
|
# Lazy load BaseImageVariationConfig to avoid loading at module import time
|
||||||
|
if name == "BaseImageVariationConfig":
|
||||||
|
# Check if already cached
|
||||||
|
if "BaseImageVariationConfig" not in _globals:
|
||||||
|
from litellm.llms.base_llm.image_variations.transformation import (
|
||||||
|
BaseImageVariationConfig as _BaseImageVariationConfig,
|
||||||
|
)
|
||||||
|
_globals["BaseImageVariationConfig"] = _BaseImageVariationConfig
|
||||||
|
return _globals["BaseImageVariationConfig"]
|
||||||
|
|
||||||
|
# Lazy load BasePassthroughConfig to avoid loading at module import time
|
||||||
|
if name == "BasePassthroughConfig":
|
||||||
|
# Check if already cached
|
||||||
|
if "BasePassthroughConfig" not in _globals:
|
||||||
|
from litellm.llms.base_llm.passthrough.transformation import (
|
||||||
|
BasePassthroughConfig as _BasePassthroughConfig,
|
||||||
|
)
|
||||||
|
_globals["BasePassthroughConfig"] = _BasePassthroughConfig
|
||||||
|
return _globals["BasePassthroughConfig"]
|
||||||
|
|
||||||
|
# Lazy load BaseRealtimeConfig to avoid loading at module import time
|
||||||
|
if name == "BaseRealtimeConfig":
|
||||||
|
# Check if already cached
|
||||||
|
if "BaseRealtimeConfig" not in _globals:
|
||||||
|
from litellm.llms.base_llm.realtime.transformation import (
|
||||||
|
BaseRealtimeConfig as _BaseRealtimeConfig,
|
||||||
|
)
|
||||||
|
_globals["BaseRealtimeConfig"] = _BaseRealtimeConfig
|
||||||
|
return _globals["BaseRealtimeConfig"]
|
||||||
|
|
||||||
|
# Lazy load BaseRerankConfig to avoid loading at module import time
|
||||||
|
if name == "BaseRerankConfig":
|
||||||
|
# Check if already cached
|
||||||
|
if "BaseRerankConfig" not in _globals:
|
||||||
|
from litellm.llms.base_llm.rerank.transformation import (
|
||||||
|
BaseRerankConfig as _BaseRerankConfig,
|
||||||
|
)
|
||||||
|
_globals["BaseRerankConfig"] = _BaseRerankConfig
|
||||||
|
return _globals["BaseRerankConfig"]
|
||||||
|
|
||||||
|
# Lazy load BaseVectorStoreConfig to avoid loading at module import time
|
||||||
|
if name == "BaseVectorStoreConfig":
|
||||||
|
# Check if already cached
|
||||||
|
if "BaseVectorStoreConfig" not in _globals:
|
||||||
|
from litellm.llms.base_llm.vector_store.transformation import (
|
||||||
|
BaseVectorStoreConfig as _BaseVectorStoreConfig,
|
||||||
|
)
|
||||||
|
_globals["BaseVectorStoreConfig"] = _BaseVectorStoreConfig
|
||||||
|
return _globals["BaseVectorStoreConfig"]
|
||||||
|
|
||||||
|
# Lazy load BaseVectorStoreFilesConfig to avoid loading at module import time
|
||||||
|
if name == "BaseVectorStoreFilesConfig":
|
||||||
|
# Check if already cached
|
||||||
|
if "BaseVectorStoreFilesConfig" not in _globals:
|
||||||
|
from litellm.llms.base_llm.vector_store_files.transformation import (
|
||||||
|
BaseVectorStoreFilesConfig as _BaseVectorStoreFilesConfig,
|
||||||
|
)
|
||||||
|
_globals["BaseVectorStoreFilesConfig"] = _BaseVectorStoreFilesConfig
|
||||||
|
return _globals["BaseVectorStoreFilesConfig"]
|
||||||
|
|
||||||
|
# Lazy load BaseVideoConfig to avoid loading at module import time
|
||||||
|
if name == "BaseVideoConfig":
|
||||||
|
# Check if already cached
|
||||||
|
if "BaseVideoConfig" not in _globals:
|
||||||
|
from litellm.llms.base_llm.videos.transformation import (
|
||||||
|
BaseVideoConfig as _BaseVideoConfig,
|
||||||
|
)
|
||||||
|
_globals["BaseVideoConfig"] = _BaseVideoConfig
|
||||||
|
return _globals["BaseVideoConfig"]
|
||||||
|
|
||||||
|
# Lazy load ANTHROPIC_API_ONLY_HEADERS to avoid loading at module import time
|
||||||
|
if name == "ANTHROPIC_API_ONLY_HEADERS":
|
||||||
|
# Check if already cached
|
||||||
|
if "ANTHROPIC_API_ONLY_HEADERS" not in _globals:
|
||||||
|
from litellm.types.llms.anthropic import (
|
||||||
|
ANTHROPIC_API_ONLY_HEADERS as _ANTHROPIC_API_ONLY_HEADERS,
|
||||||
|
)
|
||||||
|
_globals["ANTHROPIC_API_ONLY_HEADERS"] = _ANTHROPIC_API_ONLY_HEADERS
|
||||||
|
return _globals["ANTHROPIC_API_ONLY_HEADERS"]
|
||||||
|
|
||||||
|
# Lazy load AnthropicThinkingParam to avoid loading at module import time
|
||||||
|
if name == "AnthropicThinkingParam":
|
||||||
|
# Check if already cached
|
||||||
|
if "AnthropicThinkingParam" not in _globals:
|
||||||
|
from litellm.types.llms.anthropic import (
|
||||||
|
AnthropicThinkingParam as _AnthropicThinkingParam,
|
||||||
|
)
|
||||||
|
_globals["AnthropicThinkingParam"] = _AnthropicThinkingParam
|
||||||
|
return _globals["AnthropicThinkingParam"]
|
||||||
|
|
||||||
|
# Lazy load RerankResponse to avoid loading at module import time
|
||||||
|
if name == "RerankResponse":
|
||||||
|
# Check if already cached
|
||||||
|
if "RerankResponse" not in _globals:
|
||||||
|
from litellm.types.rerank import RerankResponse as _RerankResponse
|
||||||
|
_globals["RerankResponse"] = _RerankResponse
|
||||||
|
return _globals["RerankResponse"]
|
||||||
|
|
||||||
|
# Lazy load ChatCompletionDeltaToolCallChunk to avoid loading at module import time
|
||||||
|
if name == "ChatCompletionDeltaToolCallChunk":
|
||||||
|
# Check if already cached
|
||||||
|
if "ChatCompletionDeltaToolCallChunk" not in _globals:
|
||||||
|
from litellm.types.llms.openai import (
|
||||||
|
ChatCompletionDeltaToolCallChunk as _ChatCompletionDeltaToolCallChunk,
|
||||||
|
)
|
||||||
|
_globals["ChatCompletionDeltaToolCallChunk"] = _ChatCompletionDeltaToolCallChunk
|
||||||
|
return _globals["ChatCompletionDeltaToolCallChunk"]
|
||||||
|
|
||||||
|
# Lazy load ChatCompletionToolCallChunk to avoid loading at module import time
|
||||||
|
if name == "ChatCompletionToolCallChunk":
|
||||||
|
# Check if already cached
|
||||||
|
if "ChatCompletionToolCallChunk" not in _globals:
|
||||||
|
from litellm.types.llms.openai import (
|
||||||
|
ChatCompletionToolCallChunk as _ChatCompletionToolCallChunk,
|
||||||
|
)
|
||||||
|
_globals["ChatCompletionToolCallChunk"] = _ChatCompletionToolCallChunk
|
||||||
|
return _globals["ChatCompletionToolCallChunk"]
|
||||||
|
|
||||||
|
# Lazy load ChatCompletionToolCallFunctionChunk to avoid loading at module import time
|
||||||
|
if name == "ChatCompletionToolCallFunctionChunk":
|
||||||
|
# Check if already cached
|
||||||
|
if "ChatCompletionToolCallFunctionChunk" not in _globals:
|
||||||
|
from litellm.types.llms.openai import (
|
||||||
|
ChatCompletionToolCallFunctionChunk as _ChatCompletionToolCallFunctionChunk,
|
||||||
|
)
|
||||||
|
_globals["ChatCompletionToolCallFunctionChunk"] = _ChatCompletionToolCallFunctionChunk
|
||||||
|
return _globals["ChatCompletionToolCallFunctionChunk"]
|
||||||
|
|
||||||
|
# Lazy load LiteLLM_Params to avoid loading at module import time
|
||||||
|
if name == "LiteLLM_Params":
|
||||||
|
# Check if already cached
|
||||||
|
if "LiteLLM_Params" not in _globals:
|
||||||
|
from litellm.types.router import LiteLLM_Params as _LiteLLM_Params
|
||||||
|
_globals["LiteLLM_Params"] = _LiteLLM_Params
|
||||||
|
return _globals["LiteLLM_Params"]
|
||||||
|
|
||||||
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
|
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue