0Pricing
Learn AI with Python · Lezione

Fondamenti di FastAPI per ML engineer

App FastAPI, endpoint GET/POST, parametri di percorso e query, async def e def per l'inferenza ML

Fondamenti di FastAPI per ML engineer è una lezione Learn AI with Python gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Learn AI with Python, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Learn AI with Python include 4 lezioni in totale.

Perché FastAPI per il machine learning?

FastAPI è un moderno framework web Python, ideale per esporre modelli: è veloce, genera automaticamente documentazione interattiva e convalida le richieste tramite gli hint di tipo. È diventato il modo predefinito per esporre un modello tramite un'API HTTP.

Creazione dell'applicazione

Istanziare un'applicazione FastAPI; questo oggetto app contiene tutte le route.

from fastapi import FastAPI

app = FastAPI(title="Model Serving API")

Un endpoint GET /health

Un controllo dello stato consente ai bilanciatori del carico e agli orchestratori di verificare che il servizio sia attivo. Restituisce uno stato semplice senza eseguire operazioni pesanti.

@app.get("/health")
def health():
    return {"status": "ok"}

Un endpoint POST /predict

Le predizioni richiedono dati in ingresso, quindi usano POST con un corpo della richiesta. La funzione riceve il payload analizzato e restituisce l'output del modello.

@app.post("/predict")
def predict(features: list[float]):
    result = model.predict([features])
    return {"prediction": result[0]}

GET e POST a confronto

  • GET: recupera dati, senza corpo, e viene usato per i controlli dello stato e le letture semplici.
  • POST: invia dati nel corpo e viene usato per le predizioni, quando si inviano le feature.

Esecuzione con uvicorn

uvicorn è il server ASGI che esegue FastAPI. Lo avvii dal codice o dalla riga di comando.

import uvicorn

if __name__ == "__main__":
    uvicorn.run(app, host="0.0.0.0", port=8000)

Avvio dalla riga di comando

Più comunemente, si avvia tramite la CLI, indicando a uvicorn il modulo e l'oggetto app. --reload riavvia automaticamente il server quando cambia il codice durante lo sviluppo.

# terminal
uvicorn main:app --host 0.0.0.0 --port 8000 --reload

Documentazione interattiva inclusa

FastAPI genera automaticamente Swagger UI all'indirizzo /docs e ReDoc all'indirizzo /redoc a partire dagli hint di tipo, consentendo di testare gli endpoint nel browser senza scrivere codice aggiuntivo.

async def per attività vincolate all'I/O

Utilizzi async def per gli endpoint che attendono operazioni di I/O (database, API esterne, lettura di file). L'asincronia consente al server di gestire altre richieste durante l'attesa, migliorando il throughput.

@app.get("/external")
async def fetch():
    data = await call_remote_service()
    return data

sync def per inferenza vincolata alla CPU

Il metodo predict del modello è solitamente vincolato alla CPU. Definisca questi endpoint con un normale sync def; FastAPI li esegue in un thread pool, evitando di bloccare l'event loop. Usare async per operazioni che richiedono molta CPU finirebbe invece per bloccare il server.

@app.post("/predict")
def predict(features: list[float]):
    # CPU-bound inference -> sync def
    return {"prediction": model.predict([features])[0]}

Scelta tra async e sync

  • async def: operazioni vincolate all'I/O, attende la rete o il disco.
  • sync def: inferenza del modello vincolata alla CPU, eseguita in un thread pool.

Scegliere quello corretto mantiene il server reattivo sotto carico.

Verifica rapida

Verifichi le Sue conoscenze di base su FastAPI.

Riepilogo

Ha creato un servizio FastAPI: ha creato app, aggiunto GET /health e POST /predict, lo ha eseguito con uvicorn e ha imparato a usare async def per l'I/O e sync def per l'inferenza vincolata alla CPU. Prossimo argomento: gli schemi Pydantic per richieste e risposte.

Domande Frequenti

La lezione «Fondamenti di FastAPI per ML engineer» è gratuita?

Sì — il testo completo di «Fondamenti di FastAPI per ML engineer» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Learn AI with Python, passa a CoddyKit PRO. Il corso Learn AI with Python include 4 lezioni in totale.

Cosa imparerò in «Fondamenti di FastAPI per ML engineer»?

App FastAPI, endpoint GET/POST, parametri di percorso e query, async def e def per l'inferenza ML Eserciti Learn AI with Python con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Learn AI with Python?

Non è richiesta alcuna esperienza precedente. Learn AI with Python su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Fondamenti di FastAPI per ML engineer»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Learn AI with Python?

Sì. Ogni lezione Learn AI with Python include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Fondamenti di FastAPI per ML engineer
  2. Schemi Pydantic per richieste e risposte
  3. Caricamento e serving dei modelli ML
  4. Containerizzazione dell'API del modello
← Torna a Learn AI with Python