Requisições GET e POST para IA

Colocando IA em Produção com FastAPI

Matt Eckerle

Software and Data Engineering Leader

Nosso instrutor

 

Matt Eckerle

 

 

Matt Eckerle

  • Líder de Engenharia de Software e Dados
  • Enterprise Data Manager na Inari
  • Usa FastAPI para ML desde 2019
Colocando IA em Produção com FastAPI

Visão geral do curso

 

 

  • Fundamentos do FastAPI
  • Tratamento de requisições e integração
  • Validação de entrada e segurança
  • Criar e manter APIs prontas para produção

 

 

Logo of FastAPI

Colocando IA em Produção com FastAPI

Antes de começar

✓ Python básico: funções, classes, módulos, estruturas de dados

Python logo

Colocando IA em Produção com FastAPI

Antes de começar

✓ Python básico: funções, classes, módulos, estruturas de dados

✓ Conceitos de HTTP e REST APIs

Python and http logos

Colocando IA em Produção com FastAPI

Antes de começar

✓ Python básico: funções, classes, módulos, estruturas de dados

✓ Conceitos de HTTP e REST APIs

✓ Uso do framework FastAPI

  • Tratando requisições GET e POST
  • Usando modelos Pydantic

✓ Noções de Machine Learning

Python, http, and FastAPI logos

Colocando IA em Produção com FastAPI

Entendendo requisições GET

  • Usada para recuperar dados
  • Parâmetro de rota: informação na URL
  • Não altera o estado do servidor

A Menu

GET https://example.com/?item_id=1

A diagram to understand GET requests

Colocando IA em Produção com FastAPI

Implementando GET com parâmetros de rota

from fastapi import FastAPI

app = FastAPI()

@app.get("/item/{item_id}")
async def read_item(item_id: int):
    return {"item_id": item_id}
  • O decorador `@app.get` define o endpoint.
  • {item_id} é um parâmetro de rota.
  • Type hint (int) para validação automática.
Colocando IA em Produção com FastAPI

Entendendo requisições POST

  • Usada para enviar dados ao servidor
  • Dados no corpo da requisição (geralmente JSON)
  • Pode alterar o estado do servidor

A restaurant order

POST https://example.com

A diagram to understand POST requests

Colocando IA em Produção com FastAPI

Implementando POST com dados JSON

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()
db = {}

class Item(BaseModel): name: str price: float
@app.post("/items", status_code=201)
def create_item(item: Item): db[item.name] = item.model_dump() return {"message": f"Created {item.name}"}

 

  • Modelo Pydantic define a estrutura dos dados
  • @app.post para endpoint POST
  • Parsing e validação JSON automáticos
Colocando IA em Produção com FastAPI

Códigos de status HTTP

 

  • 200 OK: sucesso padrão
  • 404 Not Found: recurso não encontrado
  • 201 Created: objeto criado

An HTTP 200 status code indicating successful request

Colocando IA em Produção com FastAPI

Lançando exceções HTTP

from fastapi import FastAPI, HTTPException
app = FastAPI()

@app.get("/item/{item_id}")
async def read_item(item_id: int):
    if item_id == 4242: #An invalid order number
        raise HTTPException(status_code=404, detail="Item not found")
    return {"item_id": item_id}

@app.post("/items") async def create_item(item: Item): # Simulating item creation return {"message": f"Created {item.name}"}, 201
Colocando IA em Produção com FastAPI

Vamos praticar!

Colocando IA em Produção com FastAPI

Preparing Video For Download...