feat: 初始提交
This commit is contained in:
54
backend/app/api/routers/llm_config.py
Normal file
54
backend/app/api/routers/llm_config.py
Normal file
@@ -0,0 +1,54 @@
|
||||
import logging
|
||||
|
||||
from fastapi import APIRouter, Depends, HTTPException, status
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
|
||||
from ...core.dependencies import get_current_user
|
||||
from ...db.session import get_session
|
||||
from ...schemas.llm_config import LLMConfigCreate, LLMConfigRead
|
||||
from ...schemas.user import UserInDB
|
||||
from ...services.llm_config_service import LLMConfigService
|
||||
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
router = APIRouter(prefix="/api/llm-config", tags=["LLM Configuration"])
|
||||
|
||||
|
||||
def get_llm_config_service(session: AsyncSession = Depends(get_session)) -> LLMConfigService:
|
||||
return LLMConfigService(session)
|
||||
|
||||
|
||||
@router.get("", response_model=LLMConfigRead)
|
||||
async def read_llm_config(
|
||||
service: LLMConfigService = Depends(get_llm_config_service),
|
||||
current_user: UserInDB = Depends(get_current_user),
|
||||
) -> LLMConfigRead:
|
||||
config = await service.get_config(current_user.id)
|
||||
if not config:
|
||||
logger.warning("用户 %s 尚未设置 LLM 配置", current_user.id)
|
||||
raise HTTPException(status_code=404, detail="尚未设置自定义配置")
|
||||
logger.info("用户 %s 获取 LLM 配置", current_user.id)
|
||||
return config
|
||||
|
||||
|
||||
@router.put("", response_model=LLMConfigRead)
|
||||
async def upsert_llm_config(
|
||||
payload: LLMConfigCreate,
|
||||
service: LLMConfigService = Depends(get_llm_config_service),
|
||||
current_user: UserInDB = Depends(get_current_user),
|
||||
) -> LLMConfigRead:
|
||||
logger.info("用户 %s 更新 LLM 配置", current_user.id)
|
||||
return await service.upsert_config(current_user.id, payload)
|
||||
|
||||
|
||||
@router.delete("", status_code=status.HTTP_204_NO_CONTENT)
|
||||
async def delete_llm_config(
|
||||
service: LLMConfigService = Depends(get_llm_config_service),
|
||||
current_user: UserInDB = Depends(get_current_user),
|
||||
) -> None:
|
||||
deleted = await service.delete_config(current_user.id)
|
||||
if not deleted:
|
||||
logger.warning("用户 %s 删除 LLM 配置失败,未找到记录", current_user.id)
|
||||
raise HTTPException(status_code=404, detail="未找到配置")
|
||||
logger.info("用户 %s 删除 LLM 配置", current_user.id)
|
||||
Reference in New Issue
Block a user