Richieste GET e POST per l'AI

Deployment di AI in produzione con FastAPI

Matt Eckerle

Software and Data Engineering Leader

Il tuo docente

 

Matt Eckerle

 

 

Matt Eckerle

  • Leader in Software e Data Engineering
  • Enterprise Data Manager presso Inari
  • Usa FastAPI per ML dal 2019
Deployment di AI in produzione con FastAPI

Panoramica del corso

 

 

  • Fondamenti di FastAPI
  • Gestione delle richieste e integrazione
  • Validazione input e sicurezza
  • Creare e mantenere API pronte per la produzione

 

 

Logo di FastAPI

Deployment di AI in produzione con FastAPI

Prima di iniziare

✓ Python di base: funzioni, classi, moduli, strutture dati

Logo di Python

Deployment di AI in produzione con FastAPI

Prima di iniziare

✓ Python di base: funzioni, classi, moduli, strutture dati

✓ Concetti di HTTP e REST API

Loghi di Python e http

Deployment di AI in produzione con FastAPI

Prima di iniziare

✓ Python di base: funzioni, classi, moduli, strutture dati

✓ Concetti di HTTP e REST API

✓ Uso del framework FastAPI

  • Gestire richieste GET e POST
  • Usare modelli Pydantic

✓ Basi di Machine Learning

Loghi di Python, http e FastAPI

Deployment di AI in produzione con FastAPI

Richieste GET: spiegazione

  • Usata per recuperare dati
  • Parametro di percorso: info nell'URL
  • Non cambia lo stato del server

Un menu

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

Schema per capire le richieste GET

Deployment di AI in produzione con FastAPI

Implementare GET con parametri di percorso

from fastapi import FastAPI

app = FastAPI()

@app.get("/item/{item_id}")
async def read_item(item_id: int):
    return {"item_id": item_id}
  • Il decoratore `@app.get` definisce l'endpoint.
  • {item_id} è un parametro di percorso.
  • Type hint (int) per validazione automatica.
Deployment di AI in produzione con FastAPI

Richieste POST: spiegazione

  • Usata per inviare dati al server
  • Dati nel corpo della richiesta (di solito JSON)
  • Può cambiare lo stato del server

Un ordine al ristorante

POST https://example.com

Schema per capire le richieste POST

Deployment di AI in produzione con FastAPI

Implementare POST con dati 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}"}

 

  • Il modello Pydantic definisce la struttura dei dati
  • @app.post per l'endpoint POST
  • Parsing e validazione JSON automatici
Deployment di AI in produzione con FastAPI

Codici di stato HTTP

 

  • 200 OK: successo predefinito
  • 404 Not Found: risorsa non trovata
  • 201 Success: oggetto creato

Un codice di stato HTTP 200 che indica richiesta riuscita

Deployment di AI in produzione con FastAPI

Generare eccezioni 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
Deployment di AI in produzione con FastAPI

Esercitiamoci!

Deployment di AI in produzione con FastAPI

Preparing Video For Download...