人脸识别服务 API
该服务提供一个用于人脸向量化的小型 REST API。
基础 URL
默认地址:
http://<host>:9000Docker 容器监听
9000端口。开发环境(
docker-compose.yml):启动uvicorn,默认 1 个 worker(1 个进程),并启用访问日志。生产环境(
docker-compose.prod.yml):启动uvicorn,配置--workers 2(两个进程)和--no-access-log。- 每个 worker 加载自己的模型副本。
接口端点
GET /health
健康检查/就绪状态检查。
响应
json
{"status":"ok"}未就绪状态 (503)
当 worker 仍在加载模型时返回此状态。
json
{"status":"not_ready"}POST /faces/vectorize
上传人脸图像(multipart/form-data 格式)并获取其特征向量。
请求
- Content-Type:
multipart/form-data - 文件字段名:
image(推荐)或file
示例 (curl)
bash
curl -F "image=@/path/to/face.jpg" http://localhost:9000/faces/vectorize成功响应 (200)
json
{
"status": "success",
"embedding": [0.0123, -0.0456, 0.0789]
}错误响应
- 400
{"status":"missing_image"}:未上传文件 - 400
{"status":"invalid_image"}:图像无法读取或无效 - 422
{"status":"no_face"}:未检测到人脸 - 422
{"status":"multiple_faces","face_count":2}:检测到多张人脸 - 500
{"status":"error"}:内部错误
日志记录
该服务会对每个请求记录以下结果之一:
- 成功:检测到 1 张人脸。
- 失败:未检测到人脸。
- 失败:检测到多张人脸。
- 失败:图像无效或服务器错误。