专栏名称: 赛博攻防悟道
独到观点的安全情报分析
目录
相关文章推荐
产品犬舍  ·  脱敏版:远程指导人在大厂的老朋友做产品实录 ·  8 小时前  
中测检测  ·  权威回复 | ... ·  昨天  
产品犬舍  ·  周一水一贴:我怎样评价自己? ·  2 天前  
51好读  ›  专栏  ›  赛博攻防悟道

Pydantic-AI输出约束技术深度剖析

赛博攻防悟道  · 公众号  ·  · 2025-06-17 19:11

正文

请到「今天看啥」查看全文


实例并指定 output_type 时,一系列的初始化工作便开始了。

from pydantic import BaseModel
from pydantic_ai import Agent

class CityLocation(BaseModel):
    city: str
    country: str

# 初始化 Agent 并指定输出类型
agent = Agent('google:gemini-1.5-flash', output_type=CityLocation) 

1. Agent.__init__ : 在 agent.py 中, Agent 的构造函数接收 output_type 参数。它立即调用 _output.OutputSchema.build() 方法,将 CityLocation 这个 Python 类型转化为内部表示。

2. OutputSchema.build() : 这个位于 _output.py 的类方法是模式转换的起点。它会为 CityLocation 类型创建一个 OutputTool 实例。这个 OutputTool 内部包含一个 OutputObjectSchema

3. 生成 JSON Schema : OutputObjectSchema 的核心职责是利用 Pydantic 的 TypeAdapter CityLocation







请到「今天看啥」查看全文