"""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 {}) openai_defaults = dict(provider_defaults.get("openai") or {}) glm_defaults = dict(provider_defaults.get("glm") or {}) deepseek_defaults = dict(provider_defaults.get("deepseek") or {}) ollama_defaults = dict(provider_defaults.get("ollama") or {}) high_model = str(high_tier.get("model") or openai_defaults.get("model") or "GLM-5").strip() return { "low": str(low_tier.get("model") or glm_defaults.get("model") or "qwen-plus").strip(), "high": high_model, "base_url": str(high_tier.get("base_url") or openai_defaults.get("base_url") or "https://api.edgefn.net/v1").strip(), "providers": { "glm": { "model": str(glm_defaults.get("model") or "qwen-plus").strip(), "base_url": str(glm_defaults.get("base_url") or "https://dashscope.aliyuncs.com/compatible-mode/v1").strip(), "api_env": str(glm_defaults.get("api_env") or "DASHSCOPE_API_KEY").strip(), }, "openai": { "model": high_model, "base_url": str(openai_defaults.get("base_url") or "https://api.edgefn.net/v1").strip(), "api_env": str(openai_defaults.get("api_env") or "OPENAI_API_KEY").strip(), }, "deepseek": { "model": str(deepseek_defaults.get("model") or "deepseek-chat").strip(), "base_url": str(deepseek_defaults.get("base_url") or "https://api.deepseek.com/v1").strip(), "api_env": str(deepseek_defaults.get("api_env") or "DEEPSEEK_API_KEY").strip(), }, "ollama": { "model": str(ollama_defaults.get("model") or "llama3:latest").strip(), "base_url": str(ollama_defaults.get("base_url") or "http://127.0.0.1:11434").strip(), "api_env": str(ollama_defaults.get("api_env") or "").strip(), }, }, } @router.get("/providers") async def get_llm_provider_presets( current_user: User = Depends(get_current_user), ): _ = current_user return success_response(_build_provider_payload())