Files
BiliNote/backend/app/routers/model.py
JefferyHcool 8b1bc54f2d refactor(backend): 重构后端异常处理和模型管理
- 新增自定义异常类 BizException、NoteError 和 ProviderError
- 优化了模型管理相关的逻辑,包括加载、删除和测试连接等功能
- 改进了 Douyin 下载器的错误处理
- 调整了任务重试逻辑和笔记生成的异常处理- 更新了相关组件和页面以适应新的异常处理机制
2025-06-06 21:30:23 +08:00

51 lines
1.6 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):
return R.success(modelService.get_all_models_by_id(provider_id))
@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}")