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 --reloadDocumentazione 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 datasync 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
- Fondamenti di FastAPI per ML engineer
- Schemi Pydantic per richieste e risposte
- Caricamento e serving dei modelli ML
- Containerizzazione dell'API del modello