Validação de esquemas com Pydantic
Defina sua saída como um BaseModel do Pydantic, valide o JSON e detecte respostas malformadas antecipadamente.
Validação de esquemas com Pydantic é uma aula grátis de AI Agents no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de AI Agents, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de AI Agents inclui 4 aulas no total.
Partes desta aula ainda não foram traduzidas e aparecem em inglês.
Por que Pydantic?
Pydantic é a biblioteca de segurança de tipos de facto para Python. Ela:
- Valida dicionários em relação a classes com anotações de tipo
- Converte tipos ou rejeita valores incompatíveis
- Gera automaticamente um esquema JSON para a API da OpenAI
- Integra-se bem com FastAPI, LangChain e LlamaIndex
Defining a Schema
from pydantic import BaseModel, Field
class Product(BaseModel):
name: str
price: float = Field(gt=0, description='Positive price in USD')
in_stock: bool
tags: list[str] = []Validating a Dict
data = {'name': 'Mug', 'price': 9.99, 'in_stock': True, 'tags': ['kitchen']}
product = Product.model_validate(data)
print(product.price) # 9.99Validating JSON
json_str = '{"name":"Mug","price":9.99,"in_stock":true}'
product = Product.model_validate_json(json_str)Validation Errors
from pydantic import ValidationError
try:
Product.model_validate({'name': 'Mug', 'price': -1, 'in_stock': True})
except ValidationError as e:
print(e)
# [{'type': 'greater_than', 'loc': ('price',), 'msg': 'Input should be greater than 0', ...}]Field-Level Validators
from pydantic import field_validator
class User(BaseModel):
email: str
@field_validator('email')
@classmethod
def must_have_at(cls, v):
if '@' not in v:
raise ValueError('Invalid email')
return v.lower()Nested Models
class Address(BaseModel):
city: str
zip: str
class User(BaseModel):
name: str
address: Address
data = {'name': 'Alice', 'address': {'city': 'Berlin', 'zip': '10115'}}
user = User.model_validate(data)
print(user.address.city)Generating JSON Schema
schema = Product.model_json_schema()
# Pass straight to OpenAI tools or response_formatUsing With OpenAI SDK
from openai import OpenAI
client = OpenAI()
response = client.beta.chat.completions.parse(
model='gpt-4o-2024-08-06',
messages=[{'role': 'user', 'content': 'Give me a product.'}],
response_format=Product
)
product = response.choices[0].message.parsedOptional Fields
from typing import Optional
class Order(BaseModel):
id: int
note: Optional[str] = NoneDefaults
class Settings(BaseModel):
units: str = 'celsius'
notify: bool = TrueAliases
Para mapear snake_case do JSON para camelCase do Python ou vice-versa:
class User(BaseModel):
user_id: int = Field(alias='userId')
u = User.model_validate({'userId': 42})
print(u.user_id) # 42Uniões discriminadas
Para tipos polimórficos, use a união discriminada do Pydantic:
from typing import Literal, Union
from pydantic import Field
class TextMessage(BaseModel):
type: Literal['text']
content: str
class ImageMessage(BaseModel):
type: Literal['image']
url: str
Message = Annotated[Union[TextMessage, ImageMessage], Field(discriminator='type')]Objetivo da validação
Por que usar Pydantic em toda saída de ferramenta?
Recapitulação
Pydantic é a camada de contrato entre as saídas do LLM, as saídas das ferramentas e o seu código. Use-o em todos os lugares; combine-o com saídas estruturadas para garantir a validade.
Aprenda AI Agents com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 60
- Aulas
- 239
Perguntas Frequentes
A aula “Validação de esquemas com Pydantic” é grátis?
Sim — o texto completo de “Validação de esquemas com Pydantic” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de AI Agents, atualize para CoddyKit PRO. O curso de AI Agents inclui 4 aulas no total.
O que vou aprender em “Validação de esquemas com Pydantic”?
Defina sua saída como um BaseModel do Pydantic, valide o JSON e detecte respostas malformadas antecipadamente. Você pratica AI Agents com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar AI Agents?
Nenhuma experiência prévia é necessária. AI Agents no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “Validação de esquemas com Pydantic”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de AI Agents?
Sim. Cada aula de AI Agents inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Modo JSON e saídas de chamadas de ferramentas
- Validação de esquemas com Pydantic
- Loops de reparo para saídas malformadas
- Instructor / Outlines para estrutura garantida