first commit
This commit is contained in:
30
backend/app/api/settings.py
Normal file
30
backend/app/api/settings.py
Normal file
@@ -0,0 +1,30 @@
|
||||
"""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()
|
||||
Reference in New Issue
Block a user