0Pricing
Learn AI with Python · 课时

面向机器学习工程师的 FastAPI 基础

FastAPI 应用、GET/POST 端点、路径参数和查询参数,以及用于机器学习推理的 async def 与 def。

面向机器学习工程师的 FastAPI 基础 是 CoddyKit 上的免费 Learn AI with Python 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Learn AI with Python 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Learn AI with Python 课程共包含 4 节课。

为什么机器学习选择 FastAPI?

FastAPI 是一个现代 Python Web 框架,非常适合提供模型服务:它运行速度快、会自动生成交互式文档,还能利用类型提示验证请求。如今,使用它将模型封装在 HTTP API 后面已经成为默认方式。

创建应用

实例化一个 FastAPI 应用;这个 app 对象包含您的所有路由。

from fastapi import FastAPI

app = FastAPI(title="Model Serving API")

GET /health 端点

健康检查可以让负载均衡器和编排器确认服务仍在运行。它只返回简单的状态信息,不执行繁重的工作。

@app.get("/health")
def health():
    return {"status": "ok"}

POST /predict 端点

预测需要输入数据,因此使用带请求正文的 POST。函数接收解析后的有效载荷,并返回模型输出。

@app.post("/predict")
def predict(features: list[float]):
    result = model.predict([features])
    return {"prediction": result[0]}

GET 与 POST

  • GET:获取数据,不带请求正文,用于健康检查和简单读取。
  • POST:在请求正文中发送数据,用于提交特征并进行预测。

使用 uvicorn 运行

uvicorn 是运行 FastAPI 的 ASGI 服务器。您可以从代码或命令行启动它。

import uvicorn

if __name__ == "__main__":
    uvicorn.run(app, host="0.0.0.0", port=8000)

命令行启动

更常见的方式是通过 CLI 启动:将 uvicorn 指向模块和应用对象。开发期间,--reload 会在代码发生更改时自动重启。

# terminal
uvicorn main:app --host 0.0.0.0 --port 8000 --reload

免费获得交互式文档

FastAPI 会根据您的类型提示,在 /docs 自动生成 Swagger UI,并在 /redoc 自动生成 ReDoc,因此无需编写任何额外代码,就可以在浏览器中测试端点。

使用 async def 处理 IO 密集型工作

对于需要等待 IO(数据库、外部 API、文件读取)的端点,请使用 async def。等待期间,异步机制可以让服务器处理其他请求,从而提高吞吐量。

@app.get("/external")
async def fetch():
    data = await call_remote_service()
    return data

使用 sync def 处理 CPU 密集型推理

模型的 predict 通常受 CPU 限制。请使用普通的 sync def 定义这类端点;FastAPI 会在工作线程池中运行它们,因此不会阻塞事件循环。对 CPU 密集型工作使用异步方式反而会冻结服务器。

@app.post("/predict")
def predict(features: list[float]):
    # CPU-bound inference -> sync def
    return {"prediction": model.predict([features])[0]}

选择异步还是同步

  • async def:IO 密集型工作,需要等待网络或磁盘。
  • sync def:CPU 密集型模型推理,在工作线程池中运行。

选择正确的方式,可以让服务器在高负载下仍保持响应。

快速检查

请检验您对 FastAPI 基础知识的掌握情况。

回顾

您已经构建了一个 FastAPI 服务:创建了 app,添加了 GET /health 和 POST /predict,使用 uvicorn 运行,并学会对 IO 密集型工作使用 async def,对 CPU 密集型推理使用 sync def。下一步:Pydantic 请求/响应模式。

常见问题解答

「面向机器学习工程师的 FastAPI 基础」课时是免费的吗?

是的 — 「面向机器学习工程师的 FastAPI 基础」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Learn AI with Python 课程的其余内容,请升级到 CoddyKit PRO。 Learn AI with Python 课程共包含 4 节课。

「面向机器学习工程师的 FastAPI 基础」这节课中我会学到什么?

FastAPI 应用、GET/POST 端点、路径参数和查询参数,以及用于机器学习推理的 async def 与 def。 你通过在浏览器中直接运行的动手代码来练习 Learn AI with Python,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Learn AI with Python 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Learn AI with Python 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。

「面向机器学习工程师的 FastAPI 基础」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Learn AI with Python 课中编写并运行代码吗?

能。每节 Learn AI with Python 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 面向机器学习工程师的 FastAPI 基础
  2. 用于请求与响应的 Pydantic 模式
  3. 加载和提供机器学习模型
  4. 将模型 API 容器化
← 返回 Learn AI with Python