增加代码知识库;修复文档处理内容;增加API设置
This commit is contained in:
78
rag-web-ui/backend/app/api/api_v1/model_configs.py
Normal file
78
rag-web-ui/backend/app/api/api_v1/model_configs.py
Normal file
@@ -0,0 +1,78 @@
|
||||
from typing import Any, List
|
||||
|
||||
from fastapi import APIRouter, Depends, HTTPException
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from app.core.security import get_current_user
|
||||
from app.db.session import get_db
|
||||
from app.models.user import User
|
||||
from app.schemas.model_config import (
|
||||
ModelConfigCreate,
|
||||
ModelConfigResponse,
|
||||
ModelConfigUpdate,
|
||||
ModelProviderOptionsResponse,
|
||||
)
|
||||
from app.services.model_config import ModelConfigService, provider_options_response
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
@router.get("/providers", response_model=ModelProviderOptionsResponse)
|
||||
def read_model_provider_options(
|
||||
current_user: User = Depends(get_current_user),
|
||||
) -> Any:
|
||||
_ = current_user
|
||||
return provider_options_response()
|
||||
|
||||
|
||||
@router.get("", response_model=List[ModelConfigResponse])
|
||||
def read_model_configs(
|
||||
db: Session = Depends(get_db),
|
||||
current_user: User = Depends(get_current_user),
|
||||
) -> Any:
|
||||
return ModelConfigService.list_configs(db, current_user.id)
|
||||
|
||||
|
||||
@router.post("", response_model=ModelConfigResponse)
|
||||
def create_model_config(
|
||||
*,
|
||||
db: Session = Depends(get_db),
|
||||
payload: ModelConfigCreate,
|
||||
current_user: User = Depends(get_current_user),
|
||||
) -> Any:
|
||||
try:
|
||||
return ModelConfigService.create_config(db, current_user.id, payload)
|
||||
except ValueError as exc:
|
||||
raise HTTPException(status_code=400, detail=str(exc)) from exc
|
||||
|
||||
|
||||
@router.put("/{config_id}", response_model=ModelConfigResponse)
|
||||
def update_model_config(
|
||||
*,
|
||||
db: Session = Depends(get_db),
|
||||
config_id: int,
|
||||
payload: ModelConfigUpdate,
|
||||
current_user: User = Depends(get_current_user),
|
||||
) -> Any:
|
||||
item = ModelConfigService.get_config(db, current_user.id, config_id)
|
||||
if not item:
|
||||
raise HTTPException(status_code=404, detail="Model config not found.")
|
||||
try:
|
||||
return ModelConfigService.update_config(db, item, payload)
|
||||
except ValueError as exc:
|
||||
raise HTTPException(status_code=400, detail=str(exc)) from exc
|
||||
|
||||
|
||||
@router.delete("/{config_id}", response_model=ModelConfigResponse)
|
||||
def delete_model_config(
|
||||
*,
|
||||
db: Session = Depends(get_db),
|
||||
config_id: int,
|
||||
current_user: User = Depends(get_current_user),
|
||||
) -> Any:
|
||||
item = ModelConfigService.get_config(db, current_user.id, config_id)
|
||||
if not item:
|
||||
raise HTTPException(status_code=404, detail="Model config not found.")
|
||||
response = ModelConfigResponse.model_validate(item)
|
||||
ModelConfigService.delete_config(db, item)
|
||||
return response
|
||||
Reference in New Issue
Block a user