利用FastAPI构建高效预测API与实时人脸检测系统
1. 使用Joblib缓存结果
在构建REST API时,我们可以使用Joblib来缓存预测结果,从而提高系统的性能。为了实现这一点,我们添加了一个 DELETE/cache 路由,用于通过HTTP请求清除整个Joblib缓存。以下是示例代码:
# chapter13_caching.py
@app.post("/prediction")
def prediction(
output: PredictionOutput = Depends(newgroups_model.predict),
) -> PredictionOutput:
return output
@app.delete("/cache", status_code=status.HTTP_204_NO_CONTENT)
def delete_cache():
memory.clear()
上述代码中, memory.clear() 方法会移除磁盘上所有的Joblib缓存文件。当我们使用相同的输入进行两次请求时,第二次响应将显示缓存的结果。虽然在这个示例中,由于模型运行速度快,我们可能无法明显感受到执行时间的差异,但对于更复杂的模型,这种缓存机制会非常有用。
2. 标准函数与异步函数的选择
FastAPI支持异步I/O,这对应用程序的性能提升有很大帮助。但在某些情况下,我们可能无法使用异步函数。例如,Joblib是同步实现的,它在硬盘上进行读写缓存文
FastAPI构建实时人脸检测系统
超级会员免费看
订阅专栏 解锁全文
47

被折叠的 条评论
为什么被折叠?



