files.py 647 B

12345678910111213141516171819202122
  1. """模型列表与模型文件下载。"""
  2. from fastapi import APIRouter, Depends, HTTPException
  3. from fastapi.responses import FileResponse
  4. from auth import require_auth
  5. from services import model_service
  6. router = APIRouter()
  7. @router.get("/api/models")
  8. def list_models(_auth: str = Depends(require_auth)) -> list[str]:
  9. return model_service.list_models()
  10. @router.get("/models/{name}")
  11. def get_model(name: str) -> FileResponse:
  12. path = model_service.resolve_model(name)
  13. if path is None:
  14. raise HTTPException(status_code=404, detail="模型不存在")
  15. return FileResponse(path, media_type=model_service.media_type(path))