Spaces:
Sleeping
Sleeping
| import os | |
| from collections.abc import Callable | |
| from typing import TypeVar | |
| from app.core.config import settings | |
| F = TypeVar("F", bound=Callable) | |
| def gpu(duration: int | None = None) -> Callable[[F], F]: | |
| if not _should_use_zerogpu(): | |
| return _identity | |
| try: | |
| import spaces | |
| except ImportError: | |
| return _identity | |
| return spaces.GPU(duration=duration or settings.ZEROGPU_DURATION_SECONDS) | |
| def _identity(func: F) -> F: | |
| return func | |
| def _should_use_zerogpu() -> bool: | |
| if os.getenv("DISABLE_ZEROGPU", "").lower() in {"1", "true", "yes"}: | |
| return False | |
| if os.getenv("ENABLE_ZEROGPU", "").lower() in {"1", "true", "yes"}: | |
| return True | |
| return bool(os.getenv("SPACE_ID")) | |
| def is_enabled() -> bool: | |
| return _should_use_zerogpu() | |