Files
fund-tracer/backend/app/api/settings.py
2026-03-09 14:46:56 +08:00

31 lines
795 B
Python

"""Runtime settings API for LLM provider and API keys."""
from pydantic import BaseModel
from fastapi import APIRouter
from app.config import public_settings, update_runtime_settings
router = APIRouter()
class SettingsUpdate(BaseModel):
llm_provider: str | None = None
openai_api_key: str | None = None
anthropic_api_key: str | None = None
deepseek_api_key: str | None = None
custom_openai_api_key: str | None = None
custom_openai_base_url: str | None = None
custom_openai_model: str | None = None
@router.get("")
async def get_runtime_settings():
return public_settings()
@router.put("")
async def update_settings(body: SettingsUpdate):
payload = body.model_dump(exclude_unset=True)
update_runtime_settings(payload)
return public_settings()