"""LLM provider preset API.""" from __future__ import annotations from typing import Any from fastapi import APIRouter, Depends from ..core.response import success_response from ..dependencies.auth import get_current_user from ..models import User from ..services.model.model_config import get_provider_defaults, get_tier_defaults router = APIRouter(prefix="/ai-steward/llm", tags=["AI Steward"]) def _build_provider_payload() -> dict[str, Any]: provider_defaults = get_provider_defaults() tier_defaults = get_tier_defaults() low_tier = dict(tier_defaults.get("low") or {}) high_tier = dict(tier_defaults.get("high") or {}) return { "low": str(low_tier.get("model") or provider_defaults.get("glm", {}).get("model") or "qwen-plus").strip(), "high": str(high_tier.get("model") or "GLM-5").strip(), "base_url": str(high_tier.get("base_url") or provider_defaults.get("openai", {}).get("base_url") or "https://api.edgefn.net/v1").strip(), "providers": { "glm": { "model": str(provider_defaults.get("glm", {}).get("model") or "qwen-plus").strip(), "base_url": str(provider_defaults.get("glm", {}).get("base_url") or "https://dashscope.aliyuncs.com/compatible-mode/v1").strip(), "api_env": "DASHSCOPE_API_KEY", }, "openai": { "model": str(provider_defaults.get("openai", {}).get("model") or "MiniMax-M2.5").strip(), "base_url": str(provider_defaults.get("openai", {}).get("base_url") or "https://api.edgefn.net/v1").strip(), "api_env": "OPENAI_API_KEY", }, "deepseek": { "model": str(provider_defaults.get("deepseek", {}).get("model") or "deepseek-chat").strip(), "base_url": str(provider_defaults.get("deepseek", {}).get("base_url") or "https://api.deepseek.com/v1").strip(), "api_env": "DEEPSEEK_API_KEY", }, "ollama": { "model": str(provider_defaults.get("ollama", {}).get("model") or "llama3:latest").strip(), "base_url": str(provider_defaults.get("ollama", {}).get("base_url") or "http://127.0.0.1:11434").strip(), "api_env": "", }, }, } @router.get("/providers") async def get_llm_provider_presets( current_user: User = Depends(get_current_user), ): _ = current_user return success_response(_build_provider_payload())