26 lines
843 B
Python
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)
|