使用FastAPI和Docker部署在Scikit-Learn中构建的分类机器学习模型
本教程继教程之后:使用Scikit-Learn+Flask+Docker服务您的第一个模型:
在本教程中,我们将实现相同的微服务,为基于Scikit-Learn的分类机器学习模型提供服务,但使用FastAPI而不是Flask。为什么?嗯,FastAPI是一个现代的、快速的(高性能)和相关的框架,用于使用Python构建WebAPI,是Flask的一个很好的替代品,并且近年来已经流行起来。由...制作早在年,它通常因其出色的文档和出色的设计而受到称赞。
你可以在这里查看完整的FastAPI文档:
FastAPI在几个方面都优于Flask。Flask不提供数据验证、自动文档或异步功能(没有任何扩展)。正如ChristopherGS在“FastAPIvsFlask—TheCompleteGuide”[1]中提出的,FastAPI也往往比Flask更快,使用ASGI(异步服务器网关接口)而不是WSGI:
Web框架基准
在本教程中,我们将创建一个Docker映像,用于使用FastAPI作为堆栈的一部分部署模型,您可以在此处找到完整的代码和文档:
设置环境
首先,我们现在需要设置我们的工作环境,为此,首先为项目创建一个虚拟环境很有用。这是一个重要的步骤,因为默认情况下,系统上的每个Python项目都将使用相同的目录来存储和检索站点包。通过创建虚拟环境,我们帮助为Python项目创建隔离环境,以跟踪每个包。这样每个项目都可以有自己的依赖项,而不管其他项目有什么依赖项。
安装创建虚拟环境所需的软件包*:
$pip安装虚拟环境
*如果您使用的是Python3,那么您应该已经安装了标准库中的virtualenv模块。
接下来,创建一个名为venv的新虚拟环境:
$virtualenvvenv
使用选项-p和Python路径指定用于创建环境的Python版本也很有帮助(这在稍后构建Docker映像以匹配相同的Python版本时很有帮助)。
$virtualenv-ppath_to_pythonvenv
最后,我们可以激活虚拟环境:
$源venv/bin/激活
如果您使用的是Windows,则命令会有所不同,但是,这是在Windows中使用虚拟环境的非常好的指南: