Files
BiliNote/backend/app/routers/model.py
JefferyHcool be3db5faaf feat(model): 增加模型管理和测试功能
- 新增模型删除功能
- 实现模型测试连接功能
- 优化模型选择器组件
- 更新模型相关API和数据库操作
2025-05-26 23:16:49 +08:00

52 lines
1.7 KiB
Python

from fastapi import APIRouter
from pydantic import BaseModel
from app.services.model import ModelService
from app.utils.response import ResponseWrapper as R
router = APIRouter()
modelService = ModelService()
class CreateModelRequest(BaseModel):
provider_id: str
model_name: str
# 返回体:模型信息
class ModelItem(BaseModel):
id: int
model_name: str
@router.get("/model_list")
def model_list():
try:
return R.success(modelService.get_all_models(True),msg="获取模型列表成功")
except Exception as e:
return R.error(e)
@router.get("/models/delete/{model_id}")
def delete_model(model_id: int):
try:
success = modelService.delete_model_by_id(model_id)
if success:
return R.success(msg="模型删除成功")
else:
return R.error("模型不存在或删除失败")
except Exception as e:
return R.error(f"删除模型失败: {e}")
@router.get("/model_list/{provider_id}")
def model_list(provider_id):
try:
return R.success(modelService.get_all_models_by_id(provider_id))
except Exception as e:
return R.error(e)
@router.post("/models")
def create_model(data: CreateModelRequest):
success = ModelService.add_new_model(data.provider_id, data.model_name)
if not success:
return R.error("模型添加失败")
return R.success(msg="模型添加成功")
@router.get("/model_enable/{provider_id}")
def get_enabled_models_by_provider(provider_id: str):
try:
models = modelService.get_enabled_models_by_provider(provider_id)
return R.success(models, msg="获取启用模型成功")
except Exception as e:
return R.error(f"获取启用模型失败: {e}")