files.py 574 B

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