ai/ai
1
0
Fork 0
ai/app/dependencies.py

26 lines
843 B
Python

"""Dependency wiring for app services."""
from __future__ import annotations
import os
from functools import lru_cache
from pathlib import Path
from app.config.loader import load_config
from app.core.router import RouterCore
from app.providers.factory import build_provider_registry
def _resolve_paths() -> tuple[Path, Path]:
data_dir = Path(os.getenv("AI_ROUTER_DATA_DIR", "."))
config_path = Path(os.getenv("AI_ROUTER_CONFIG", str(data_dir / "config.yml")))
auth_path = Path(os.getenv("AI_ROUTER_AUTH", str(data_dir / "auth.yml")))
return config_path, auth_path
@lru_cache
def get_router_core() -> RouterCore:
config_path, auth_path = _resolve_paths()
loaded = load_config(config_path=config_path, auth_path=auth_path)
providers = build_provider_registry(loaded)
return RouterCore(providers=providers)