"""LLM provider preset API.""" from __future__ import annotations import os 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 router = APIRouter(prefix="/ai-steward/llm", tags=["AI Steward"]) def _build_provider_payload() -> dict[str, Any]: low_model = str(os.getenv("LLM_ROUTING_LOW_MODEL", "GLM-4.7") or "GLM-4.7").strip() high_model = str(os.getenv("LLM_ROUTING_HIGH_MODEL", "MiniMax-M2.5") or "MiniMax-M2.5").strip() base_url = str(os.getenv("OPENAI_BASE_URL", "https://api.edgefn.net/v1") or "https://api.edgefn.net/v1").strip() ollama_base_url = str( os.getenv("OLLAMA_BASE_URL", os.getenv("OLLAMA_HOST", "http://127.0.0.1:11434")) or "http://127.0.0.1:11434" ).strip() return { "low": low_model, "high": high_model, "base_url": base_url, "providers": { "glm": { "model": str(os.getenv("GLM_MODEL", low_model) or low_model).strip(), "base_url": str(os.getenv("GLM_BASE_URL", base_url) or base_url).strip(), "api_env": "GLM_API_KEY", }, "openai": { "model": str(os.getenv("OPENAI_MODEL", high_model) or high_model).strip(), "base_url": base_url, "api_env": "OPENAI_API_KEY", }, "deepseek": { "model": str(os.getenv("DEEPSEEK_MODEL", "deepseek-chat") or "deepseek-chat").strip(), "base_url": str(os.getenv("DEEPSEEK_BASE_URL", "https://api.deepseek.com/v1") or "").strip(), "api_env": "DEEPSEEK_API_KEY", }, "ollama": { "model": str(os.getenv("OLLAMA_MODEL", "llama3:latest") or "llama3:latest").strip(), "base_url": ollama_base_url, "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())