Grunderna i FastAPI för ML-ingenjörer
FastAPI-app, GET/POST-slutpunkter, sökvägs- och frågeparametrar, async def kontra def för ML-inferens.
Grunderna i FastAPI för ML-ingenjörer är en gratis lektion i Lär Er AI med Python på CoddyKit. Detta är lektion 1 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Lär Er AI med Python, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Lär Er AI med Python innehåller totalt 4 lektioner.
Varför FastAPI för ML?
FastAPI är ett modernt Python-webbramverk som passar utmärkt för att servera modeller: det är snabbt, genererar interaktiv dokumentation automatiskt och validerar requests med typannoteringar. Det har blivit standardsättet att kapsla in en modell bakom ett HTTP-API.
Skapa appen
Skapa en FastAPI-applikation; objektet app innehåller alla era routes.
from fastapi import FastAPI
app = FastAPI(title="Model Serving API")En GET /health-endpoint
En hälsokontroll låter lastbalanserare och orkestrerare bekräfta att tjänsten är igång. Den returnerar en enkel status utan att utföra tungt arbete.
@app.get("/health")
def health():
return {"status": "ok"}En POST /predict-endpoint
Förutsägelser kräver indata, så de använder POST med en request body. Funktionen tar emot den tolkade payloaden och returnerar modellens resultat.
@app.post("/predict")
def predict(features: list[float]):
result = model.predict([features])
return {"prediction": result[0]}GET jämfört med POST
- GET: hämta data, utan body, används för hälsokontroller och enkla läsningar.
- POST: skicka data i body, används för förutsägelser där ni skickar in features.
Köra med uvicorn
uvicorn är ASGI-servern som kör FastAPI. Starta den från kod eller kommandoraden.
import uvicorn
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=8000)Starta från kommandoraden
Vanligare är att starta via CLI:t genom att ange modulen och app-objektet för uvicorn. --reload startar automatiskt om servern när koden ändras under utveckling.
# terminal
uvicorn main:app --host 0.0.0.0 --port 8000 --reloadInteraktiv dokumentation utan extra arbete
FastAPI genererar automatiskt Swagger UI på /docs och ReDoc på /redoc utifrån era typannoteringar, så att ni kan testa endpoints i webbläsaren utan extra kod.
async def för I/O-bundet arbete
Använd async def för endpoints som väntar på I/O (databas, externa API:er, filläsning). Async gör att servern kan hantera andra requests medan den väntar, vilket förbättrar genomströmningen.
@app.get("/external")
async def fetch():
data = await call_remote_service()
return datasync def för CPU-bunden inferens
Modellens predict är vanligtvis CPU-bunden. Definiera sådana endpoints med vanlig sync def; FastAPI kör dem i en trådpool så att de inte blockerar händelseslingan. Om ni använder async för CPU-tungt arbete skulle servern faktiskt låsas.
@app.post("/predict")
def predict(features: list[float]):
# CPU-bound inference -> sync def
return {"prediction": model.predict([features])[0]}Välja mellan async och sync
- async def: I/O-bundet, väntar på nätverk eller disk.
- sync def: CPU-bunden modellinferens, körs i en trådpool.
Genom att välja rätt hålls servern responsiv under belastning.
Snabbtest
Testa era FastAPI-grunder.
Sammanfattning
Ni byggde en FastAPI-tjänst: skapade app, lade till GET /health och POST /predict, körde den med uvicorn och lärde er att använda async def för I/O-bunden och sync def för CPU-bunden inferens. Nästa del: Pydantic-scheman för requests och responses.
Lär dig Python med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 53
- Lektioner
- 225
Vanliga frågor
Är lektionen ”Grunderna i FastAPI för ML-ingenjörer” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Lär Er AI med Python, inklusive ”Grunderna i FastAPI för ML-ingenjörer”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Lär Er AI med Python innehåller totalt 4 lektioner.
Vad lär jag mig i ”Grunderna i FastAPI för ML-ingenjörer”?
FastAPI-app, GET/POST-slutpunkter, sökvägs- och frågeparametrar, async def kontra def för ML-inferens. Ni övar på Lär Er AI med Python med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Lär Er AI med Python?
Du behöver inga förkunskaper. Utbildningen i Lär Er AI med Python på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.
Hur lång tid tar lektionen ”Grunderna i FastAPI för ML-ingenjörer”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Lär Er AI med Python-lektionen?
Ja. Varje Lär Er AI med Python-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Grunderna i FastAPI för ML-ingenjörer
- Pydantic-scheman för förfrågningar och svar
- Läsa in och tillhandahålla ML-modeller
- Dockerisera modell-API:t