当前位置: 首页 > news >正文

【LLM】FastAPI入门教程

note

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

文章目录

  • note
  • 一、FastAPI
  • 二、Pydantic定义和校验数据类型
  • Reference

一、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 FastAPIapp = 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 BaseModelclass Item(BaseModel):name: strdescription: str = Noneprice: floattax: 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/

相关文章:

  • # STM32F103 串口打印配置(HAL库)
  • 应急响应靶机-web2-知攻善防实验室
  • Lyra学习笔记 Experience流程梳理
  • DeepSeek 赋能数字孪生城市,筑牢应急管理智慧防线
  • VLAN的作用和原理
  • 【五子棋在线对战】一.前置知识的了解
  • 吴恩达MCP课程(2):research_server
  • Linux系统下安装配置 Nginx
  • Kanass入门教程- 事项管理
  • 机器视觉2D定位引导-合同要点重度讲解-技术要点及注意事项
  • Java-Character类静态方法深度剖析
  • C语言结构体的别名与创建结构体变量
  • 共享内存-systemV
  • Python 从入门到精通视频下载
  • 各种数据库,行式、列式、文档型、KV、时序、向量、图究竟怎么选?
  • 点云识别模型汇总整理
  • 【Doris基础】Doris中的Replica详解:Replica原理、架构
  • 华为OD机试真题——找出两个整数数组中同时出现的整数(2025A卷:100分)Java/python/JavaScript/C++/C语言/GO六种最佳实现
  • 黄金价格查询接口如何用C#进行调用?
  • Nacos实战——动态 IP 黑名单过滤
  • 品牌 网站建设/网络推广软件免费
  • 在线做简单的网站/网推渠道
  • 网页设计作品下载/搜索引擎优化是免费的吗
  • 站酷设计网站官网入口免费个人海报/免费的seo网站
  • 汕头企业网站建设价格/博客程序seo
  • ip加端口可以做网站吗/如何引流推广