Valide requisições com Pydantic
Rejeite entradas malformadas antes que cheguem ao modelo.
Valide requisições com Pydantic é uma aula grátis de MLOps Academy 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 MLOps Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de MLOps Academy inclui 4 aulas no total.
Entra lixo, sai lixo
Se um cliente enviar campos ou tipos incorretos, o seu modelo receberá dados sem sentido. Deve rejeitar entradas inválidas antes de elas chegarem ao modelo. 🛡️
Conheça o Pydantic
O FastAPI usa o Pydantic para validar pedidos. Descreva o formato dos dados com uma classe Python e a validação acontecerá automaticamente.
Defina um esquema
Crie uma subclasse de BaseModel e liste os campos com os respetivos tipos. Esta classe torna-se o contrato para o corpo do pedido /predict.
from pydantic import BaseModel
class IrisInput(BaseModel):
sepal_length: float
petal_width: floatUse-o na rota
Adicione uma anotação de tipo ao argumento do endpoint usando o seu modelo. O FastAPI analisa, valida e entrega-lhe um objeto limpo.
@app.post("/predict")
def predict(data: IrisInput):
...Aceda aos campos
Dentro da função, os dados validados são um objeto normal. Leia cada valor com um simples acesso por ponto.
x = [data.sepal_length, data.petal_width]
pred = model.predict([x])Erros 422 automáticos
Se faltar um campo ou este tiver o tipo errado, o FastAPI retorna uma resposta 422 com uma mensagem clara. Não precisa de escrever qualquer código para tratar erros.
Adicione restrições aos valores
Pode impor intervalos com Field. Aqui, uma medição tem de ser maior que zero, por isso os valores negativos são rejeitados automaticamente.
from pydantic import Field
sepal_length: float = Field(gt=0)Valide uma lista de linhas
Para avaliar muitas amostras de uma vez, aceite uma list do seu modelo. O Pydantic valida todos os itens do lote por si.
@app.post("/predict")
def predict(rows: list[IrisInput]):
...Documente os campos
Adicione descrições e exemplos aos campos, e estes aparecerão na página /docs para que os chamadores saibam exatamente o que enviar. 📘
sepal_length: float = Field(description="cm", examples=[5.1])Defina também o formato da resposta
Pode declarar um response_model para que a saída seja validada e documentada tal como a entrada, mantendo o contrato da sua API rigoroso.
@app.post("/predict", response_model=Prediction)
def predict(data: IrisInput):
...Por que isto é importante
Uma validação rigorosa da entrada é a sua primeira linha de defesa em produção. Bloqueia pedidos malformados para que o model só receba dados limpos e esperados. ✅
Verificação rápida
Um cliente envia um pedido sem um campo obrigatório. O que faz o FastAPI graças ao Pydantic?
Recapitulação
Definiu um esquema BaseModel, tipou a sua rota com ele, adicionou restrições aos campos e deixou o FastAPI rejeitar automaticamente entradas inválidas com erros 422 claros. Dados limpos à entrada! 🙌
Perguntas Frequentes
A aula “Valide requisições com Pydantic” é grátis?
Sim — o texto completo de “Valide requisições 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 MLOps Academy, atualize para CoddyKit PRO. O curso de MLOps Academy inclui 4 aulas no total.
O que vou aprender em “Valide requisições com Pydantic”?
Rejeite entradas malformadas antes que cheguem ao modelo. Você pratica MLOps Academy 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 MLOps Academy?
Nenhuma experiência prévia é necessária. MLOps Academy 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 “Valide requisições 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 MLOps Academy?
Sim. Cada aula de MLOps Academy 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
- Seu primeiro endpoint /predict
- Valide requisições com Pydantic
- Carregue o modelo uma única vez na inicialização
- Adicione uma verificação de prontidão /health