free-claude-code/api/dependencies.py
2026-01-29 14:40:08 -08:00

32 lines
996 B
Python

"""Dependency injection for FastAPI."""
from typing import Optional
from providers.base import ProviderConfig
from providers.nvidia_nim import NvidiaNimProvider
from config.settings import get_settings
# Global provider instance (singleton)
_provider: Optional[NvidiaNimProvider] = None
def get_provider() -> NvidiaNimProvider:
"""Get or create the NvidiaNimProvider instance."""
global _provider
if _provider is None:
settings = get_settings()
config = ProviderConfig(
api_key=settings.nvidia_nim_api_key,
base_url=settings.nvidia_nim_base_url,
rate_limit=settings.nvidia_nim_rate_limit,
rate_window=settings.nvidia_nim_rate_window,
)
_provider = NvidiaNimProvider(config)
return _provider
async def cleanup_provider():
"""Cleanup provider resources."""
global _provider
if _provider and hasattr(_provider, "_client"):
await _provider._client.aclose()
_provider = None