首页
学习
活动
专区
圈层
工具
发布

FastAPI学习-3.get 请求 query params 查询参数

前言 get 请求的参数在url 后面带着,一般叫query params 查询参数 查询参数 声明不属于路径参数的其他函数参数时,它们将被自动解释为”查询字符串”参数 from fastapi import...应用于路径参数的所有相同过程也适用于查询参数: (很明显的)编辑器支持 数据”解析” 数据校验 自动生成文档 默认值 由于查询参数不是路径的固定部分,因此它们可以是可选的,并且可以有默认值。...多个路径和查询参数 你可以同时声明多个路径参数和查询参数,FastAPI 能够识别它们。 而且你不需要以任何特定的顺序来声明。...当你为非路径参数声明了默认值时(目前而言,我们所知道的仅有查询参数),则该参数不是必需的。...但当你想让一个查询参数成为必需的,不声明任何默认值就可以: from fastapi import FastAPI app = FastAPI() @app.get("/items/{item_id

3.6K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    ​解密prompt系列58. MCP - 工具演变 & MCP基础

    如果你需要查询天气,请调用一个名为 'get_current_weather' 的工具。这个工具需要一个 'location' (字符串,必填) 参数,表示要查询天气的城市。...它引入JSON Schema标准化工具描述,明确定义:工具名称(name)功能描述(description)参数列表(parameters),包含类型、描述、是否必填等{ "name": "get_current_weather...而转折点则是24年结构化推理的普及,基于掩码的结构化推理能力(不熟悉的朋友看这里LLM结构化输出)不仅显著提升了模型生成工具JSON Schema的准确性,同时还让Pydantic这个数据验证和解析库进入了大家的视野中...像Langchain、LlamaIndex、DSPY等开源框架都开始引入Pydantic来自动生成工具的JSON Schema。这样不仅解析部分能自动化标准化,生成工具描述的部分同样也被标准化。...MCP服务端适配器,转换请求并返回标准化响应MCP除核心连接简化外,还提供:动态上下文构建:工具列表通过标准list_tools方法动态获取,无需在Agent内部硬编码工具描述协议标准化:明确定义工具发现

    77630

    FastAPI 学习指南 - 为什么它代表了未来?

    FastAPI 作为近几年崛起的高性能 Python Web 框架,完美契合了这些趋势:它原生支持异步编程,能充分利用现代服务器的多核资源;内置基于 Pydantic 的数据验证和自动生成的交互式 API...异步框架在处理 IO 密集型任务(如数据库查询、网络请求)时,无需等待单个请求完成即可处理下一个请求,大幅提升并发能力。...Pydantic 优化:数据验证基于 Pydantic 实现,底层使用 Rust 重写的核心逻辑,验证速度远超传统 Python 手动校验。..."} # 带路径参数的 GET 接口 @app.get("/items/{item_id}") def read_item(item_id: int, q: str = None): """根据...item_id 查询物品,q 为可选查询参数""" return {"item_id": item_id, "q": q} # 启动命令(终端执行):uvicorn main:app --reload

    22710

    FastAPI从入门到实战(0)——初识FastAPI

    通过不同的参数声明实现丰富功能。bug 更少。 健壮:生产可用级别的代码。还有自动生成的交互式文档。...FastAPI特性 基于开放标准 用于创建 API 的 OpenAPI 包含了路径操作,请求参数,请求体,安全性等的声明。...API 密钥,在: 请求头。 查询参数。 Cookies, 等等。 加上来自 Starlette(包括 session cookie)的所有安全特性。...兼容包括基于 Pydantic 的外部库, 例如用与数据库的 ORMs, ODMs。 这也意味着在很多情况下,你可以将从请求中获得的相同对象直接传到数据库,因为所有的验证都是自动的。...通过 FastAPI 你可以获得所有 Pydantic (FastAPI 基于 Pydantic 做了所有的数据处理): 更简单: 没有新的模式定义 micro-language 需要学习。

    4.4K20

    FastAPI学习-6.POST请求 JSON 格式 body

    为你的模型生成 JSON 模式 定义,你还可以在其他任何对你的项目有意义的地方使用它们。 这些模式将成为生成的 OpenAPI 模式的一部分,并且被自动化文档 UI 所使用。...启动服务后,使用 postman 测试接口 docs 文档 你所定义模型的 JSON 模式将成为生成的 OpenAPI 模式的一部分,并且在交互式 API 文档中展示: body + path路径参数...FastAPI 将识别出与路径参数匹配的函数参数应从路径中获取,而声明为 Pydantic 模型的函数参数应从请求体中获取。...+ query查询参数 你还可以同时声明请求体、路径参数和查询参数。...如果参数属于单一类型(比如 int、float、str、bool 等)它将被解释为查询参数。 如果参数的类型被声明为一个 Pydantic 模型,它将被解释为请求体。

    12.6K30

    FastAPI(8)- 请求体 Request Body

    发送请求体的栗子 注意 请求体并不是只有 POST 请求有,只不过 POST 更常见 在 PUT、DELETE、PATCH 请求中都可以使用请求体 其实,在 GET 请求中也可以用请求体,不过仅适用于非常极端的情况下...,而且 Swagger API 并不会显示 GET 请求的请求体 不使用 Pydantic的栗子 from fastapi import FastAPI import uvicorn app = FastAPI...JSON 字符串转换为 dict 这种场景下,虽然查询参数叫 item,但请求体的字段名可以随意取,字段数量也可以任意个 错误传参的请求结果 选了 text 之后,因为不是 JSON 字符串,FastAPI...给 Pydantic 模型自动的生成 JSON Schema,这些 Schema 会成为生成 OpenAPI Schema 的一部分,并显示在接口文档上 正确传参的请求结果 正常传参,所有属性按指定的类型进行传数据...如果参数也在路径中声明,它将解释为路径参数【item_id】 如果参数是单数类型(如int、float、str、boo l等),它将被解释为查询参数【name】 如果参数被声明为 Pydantic 模型的类型

    4.6K20

    工具调用解密:AI Agent的“感官”与“四肢”​​

    传统LLM仅作为“大脑”处理文本生成和推理,而Agent则通过工具充当“感官”和“四肢”,执行实际任务(如查询天气、控制设备)。今天我们将深入解析“工具/函数调用”这一基石是如何工作的?...调用工具并获取结果 else: message = user_input() # 与用户交互此循环模拟人类使用工具的过程:LLM分析输入,识别需调用的外部函数(如API),生成结构化参数...Clarify: 当请求模糊时要求用户澄清。函数Schema(JSON格式)指导LLM生成结构化调用。...对话流程示例​​典型交互中,Agent基于对话历史动态决策。例如:用户查询“笔记本”触发Search,后续“详细说明产品p1”调用GetProductDetails。...使用instructor库(Pydantic集成)可简化:定义行动类为Pydantic模型(如Search、GetProductDetails)。

    75211

    全面拥抱FastApi —三大参数及验证

    前面说过 FastApi 的一大特点是基于标准的 Python 3.6类型声明,兼具参数校验功能,这一切都要归功于 Pydantic 路径参数 路径参数即 url 路径参数,可以使用 Python 格式字符串相同语法声明路径...之后的一组键值对,以 & 字符分隔,这对爬虫朋友来说再熟悉不过了,比如下面的请求参数 data = {"test": 1, "name": "Python编程与实战"} response = requests.get...其中还有一个是路径参数:item_id, str 类型 请求体参数 要发送请求正文,必须使用一个:POST, PUT,DELETE或PATCH,需导入 Pydantic 的 BaseModel from...同时,FastApi 可以自动帮我们识别请求 body 参数, 路径参数以及查询参数,并准确的获取参数数据。...: item_id: 路径参数 q: 参数是一个的单一类型(如int,float,str,bool,等等)将被解释为一个查询参数 item: 参数声明为 Pydantic 模型的类型,则将被解释为请求

    5.9K30

    Agent设计模式——

    附录 A:高级提示工程技巧 提示工程简介 提示工程是与语言模型交互的主要接口,是指通过精心设计输入来引导模型生成期望输出的过程。这包括构建请求结构、提供相关上下文、指定输出格式以及展示预期的响应模式。...示例包括先前对话、相关文档(如在检索增强生成中)或特定操作参数。例如,在讨论日本旅行时,可请求提供东京的三个适合家庭的活动,利用现有对话上下文。...这使得它们能够理解可用工具的描述,包括其用途和参数。在接收到用户请求后,模型可以判断是否需要使用工具,识别合适的工具,并格式化调用所需的参数。...该工具名为 'get_current_weather',接受一个 'city' 参数(字符串类型)。 用户:伦敦现在的天气怎么样?...这是需要处理动态或专有信息的 Agentic 系统的关键模式。 示例: 用户查询:"Python 库'X'最新版本有哪些新功能?" 系统操作:在文档数据库中搜索"Python 库 X 最新功能"。

    25110

    python高并发优选之FastAPI

    FastAPI是一个基于Python 3.6+的现代Web框架,它专注于高性能和易用性。FastAPI通过结合多种技术实现了出色的性能,包括异步编程、类型提示和自动文档生成。...FastAPI基于Starlette框架,并且使用Pydantic库进行数据验证和转换,从而使RESTful API的开发变得更加容易。...通常情况下,GET请求会从服务器获取数据,因此GET请求的路由通常包含查询参数(比如查询关键字或过滤条件)。...其中item_id是一个整数类型的路径参数,而q是一个字符串类型的查询参数,它可以为空(因为指定了默认值)。...在create_user函数中,我们接收一个名为user的参数,它是一个Pydantic模型类(例如上文提到的User类)的实例。我们可以从这个实例中获取用户提交的数据,并将其保存到数据库中。

    2.8K30

    LLM多智能体AutoGen教程6:Python typing是如何自动生成工具调用请求参数的?

    LLM多智能体AutoGen教程5:函数调用之避免捏造参数》,我们使用typing对可调用函数进行注解,AutoGen据此自动生成OpenAI API函数调用时的请求参数。...本文将简要介绍Python中typing包的基础操作,顺便简单的介绍一下Pydantic,然后深入AutoGen的流程,探查AutoGen如何通过typing帮助自动生成Open AI API工具调用的参数...,在类型提示中也有用于限定输入参数的字面量可选值Literal,比如打开文件的模式选择, type Mode = Literal['r', 'rb', 'w', 'wb'] def open_helper...有时候,我们经常使用dict来传递参数,然而dict中有哪些键值是不明确的。个人觉得这并不是是一个好的工程方式,当然Python本身是支持这种动态特性的。...Pydantic 前面已经说到Pydantic是世界上最广泛使用的Python的validation库,它基于typing包进行数据验证和序列化,采用Rust编写最快的内核验证代码,可以轻易生成JSON

    67700

    FastAPI 从入门到生产

    官方能力说明(来自 FastAPI 官方文档的核心总结) FastAPI 提供: ✔ 高性能(可媲美 Node.js / Go) 基于 Starlette(异步 Web 框架) + Pydantic(高性能数据校验...使用 Python 类型提示自动校验参数 自动请求参数校验 自动响应模型校验 自动补全(IDE 体验极佳) ✔ 原生异步 async/await 支持 适合高并发 IO 场景。...缺点 描述 生态比 Django 小 ORM / Admin 不如 Django 完整 Pydantic 学习成本 初学者需要适应 Model 模式 高度依赖类型提示 代码量相比 Flask 多 部分组件需要自行封装...Body 参数使用 Pydantic Model from pydantic import BaseModel class User(BaseModel): name: str age:...六、FastAPI 支持的 HTTP 请求方式 除了 GET、POST,还支持: 方法 用法 PUT 更新资源 DELETE 删除资源 PATCH 局部更新 OPTIONS 预检请求 HEAD 返回响应头

    97620
    领券