使用 Python, FastAPI 和一个预训练模型 (如 MobileNetV2) 构建一个 REST API。服务接收上传的图像,并返回分类预测结果。
GET / - 响应 { "status": "ok" }。POST /predict
multipart/form-data,含名为 file 的图像 (JPEG, PNG)。{ "filename": "...", "predictions": [ {"label": "...", "probability": ...} ] },包含 Top 5 预测结果。/image-classifier-api
├── app/
│ ├── main.py # FastAPI 入口和路由
│ ├── ml/
│ │ ├── model.py # 模型加载和预测逻辑
│ │ └── utils.py # 图像处理工具
│ └── schemas.py # Pydantic 响应模型
├── models/ # (可选) 存放下载的模型文件
├── static/ # 存放 ImageNet 标签文件
├── Dockerfile
└── requirements.txt
app/ml/utils.py 中创建图像预处理和结果后处理的函数。app/ml/model.py 中封装模型加载和调用逻辑,使用 FastAPI 的 startup 事件确保只加载一次。main.py 中创建 /predict 端点,接收上传文件,调用处理函数并返回结果。Dockerfile 构建应用镜像。pytest 和 httpx 编写 API 测试,发送示例图片并验证响应。先行任务: 确定预训练模型的来源、输入尺寸和像素值范围,并整理成文档。