【LLM】FastAPI入门教程

note

  • FastAPI 是一个现代的、快速(高性能)的 Web 框架,用于构建 API(应用程序编程接口)。它基于 Python 3.7+,使用了 Python 类型提示(type hints),并且具有自动化的文档功能。

一、FastAPI

简介:FastAPI 是一个现代的、快速(高性能)的 Web 框架,用于构建 API(应用程序编程接口)。它基于 Python 3.7+,使用了 Python 类型提示(type hints),并且具有自动化的文档功能。

(1)安装fastapi

# 安装 FastAPI 和一个异步 HTTP 服务器(比如 Uvicorn)
pip install fastapi uvicorn

(2)创建一个简单的 FastAPI 应用
main.py内容如下:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
async def read_root():
    return {"message": "Hello World"}

(3)终端运行:uvicorn main:app --reload

  • uvicorn 是 HTTP 服务器。
  • main 是你的 Python 文件名(main.py)。
  • app 是你在文件中创建的 FastAPI 实例。
  • –reload 是一个开发选项,它会在代码更改时自动重新加载服务器。

运行后,你会看到类似这样的输出:

INFO:     Started server process [12345]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://1234.0.0.1:8000 (Press CTRL+C to quit)

(4)访问你的 API
打开浏览器,访问 http://127.0.0.1:8000,你会看到返回的 JSON 数据:

{
    "message": "Hello World"
}

(5)查看自动生成的文档
FastAPI 会自动为你生成文档,你可以通过以下两个链接访问:

  • http://127.0.0.1:8000/docs:使用 Swagger UI
  • http://127.0.0.1:8000/redoc:使用 ReDoc

这些文档会根据你的代码自动生成

(6)添加更多路由:可以添加更多的路由来处理不同的请求,比如:

@app.get("/items/{item_id}")
async def read_item(item_id: int, q: str = None):
    return {"item_id": item_id, "q": q}
  • /items/{item_id} 是一个路径参数,item_id 是一个整数。
  • q 是一个可选的查询参数。

访问 http://127.0.0.1:8000/items/1?q=somequery,你会看到返回:

{
    "item_id": 1,
    "q": "somequery"
}

(7)使用请求体
FastAPI 可以轻松处理 JSON 请求体

from pydantic import BaseModel

class Item(BaseModel):
    name: str
    description: str = None
    price: float
    tax: float = None

@app.post("/items/")
async def create_item(item: Item):
    return item
  • Item 是一个 Pydantic 模型,用于定义请求体的结构。
  • 使用 @app.post 来定义一个 POST 请求。

可以通过文档页面(http://127.0.0.1:8000/docs)测试这个 POST 请求,输入 JSON 数据:

{
    "name": "Item1",
    "description": "This is an item",
    "price": 9.99,
    "tax": 1.0
}

二、Pydantic定义和校验数据类型

Pydantic 是一个 Python 库,用于 数据验证 和 设置管理。它的名字来源于 Python 和 valid(验证)的结合。Pydantic 的核心功能是通过 Python 类型提示(Type Hints) 来验证数据的类型和结构。

在 FastAPI 中,Pydantic 主要用于定义 请求体(Request Body) 的结构。当你需要接收用户发送的 JSON 数据时,Pydantic 可以确保这些数据的格式是正确的。

Reference

[1] https://fastapi.tiangolo.com/
[2] http://www.datawhale.cn/learn/summary/164
[3] fastapi教程:https://hongtaoh.com/cn/2024/09/01/fastapi/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山顶夕景

小哥哥给我买个零食可好

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值