PlanOpticon

Source Blame History 40 lines
a94205b… leo 1 """Provider abstraction layer for LLM, vision, and transcription APIs."""
a94205b… leo 2
0981a08… noreply 3 from video_processor.providers.base import (
0981a08… noreply 4 BaseProvider,
0981a08… noreply 5 ModelInfo,
0981a08… noreply 6 OpenAICompatibleProvider,
0981a08… noreply 7 ProviderRegistry,
0981a08… noreply 8 )
a94205b… leo 9 from video_processor.providers.manager import ProviderManager
a94205b… leo 10
0981a08… noreply 11 __all__ = [
0981a08… noreply 12 "BaseProvider",
0981a08… noreply 13 "ModelInfo",
0981a08… noreply 14 "OpenAICompatibleProvider",
0981a08… noreply 15 "ProviderManager",
0981a08… noreply 16 "ProviderRegistry",
0981a08… noreply 17 # OpenAI-compatible providers (lazy-loaded via manager)
0981a08… noreply 18 "AzureOpenAIProvider",
0981a08… noreply 19 "CerebrasProvider",
0981a08… noreply 20 "FireworksProvider",
0981a08… noreply 21 "TogetherProvider",
0981a08… noreply 22 "XAIProvider",
0981a08… noreply 23 ]
0981a08… noreply 24
0981a08… noreply 25
0981a08… noreply 26 def __getattr__(name: str):
0981a08… noreply 27 """Lazy import provider classes to avoid import-time side effects."""
0981a08… noreply 28 _lazy_imports = {
0981a08… noreply 29 "AzureOpenAIProvider": "video_processor.providers.azure_provider",
0981a08… noreply 30 "CerebrasProvider": "video_processor.providers.cerebras_provider",
0981a08… noreply 31 "FireworksProvider": "video_processor.providers.fireworks_provider",
0981a08… noreply 32 "TogetherProvider": "video_processor.providers.together_provider",
0981a08… noreply 33 "XAIProvider": "video_processor.providers.xai_provider",
0981a08… noreply 34 }
0981a08… noreply 35 if name in _lazy_imports:
0981a08… noreply 36 import importlib
0981a08… noreply 37
0981a08… noreply 38 mod = importlib.import_module(_lazy_imports[name])
0981a08… noreply 39 return getattr(mod, name)
0981a08… noreply 40 raise AttributeError(f"module {__name__!r} has no attribute {name!r}")

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button