Leer AI met Python · Les

Pydantic-schema's voor requests en responses

BaseModel, veldvalidatie, type hints, response_model, validatiefouten afhandelen.

Les 2 van 413 stappen

Pydantic-schema's voor requests en responses is een gratis Leer AI met Python-les op CoddyKit. Dit is les 2 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Leer AI met Python. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Leer AI met Python bevat in totaal 4 lessen.

Waarom schema's?

Ruwe dicts zijn foutgevoelig. Modellen van Pydantic definiëren de exacte vorm van verzoeken en reacties, valideren typen automatisch en documenteren je API. FastAPI gebruikt ze standaard.

De BaseModel

Pydantic-schema's zijn subklassen van BaseModel. Elk getypeerd attribuut wordt een gevalideerd veld; onjuiste typen worden afgewezen voordat je code wordt uitgevoerd.

from pydantic import BaseModel

class PredictRequest(BaseModel):
    features: list[float]

Een aanvraagschema

Definieer wat clients moeten verzenden. Hier moet features een lijst met kommagetallen zijn en je kunt meer velden toevoegen, zoals een modelversie of verzoek-id.

class PredictRequest(BaseModel):
    features: list[float]
    model_version: str = "latest"

Een reactieschema

Definieer wat je API retourneert, zodat clients een stabiel en gedocumenteerd contract krijgen.

class PredictResponse(BaseModel):
    prediction: float
    probability: float

Schema's gebruiken in een eindpunt

Geef de parameter het type van je aanvraagmodel. FastAPI parseert en valideert de JSON-inhoud vervolgens automatisch tot een getypeerd object.

from fastapi import FastAPI
app = FastAPI()

@app.post("/predict")
def predict(req: PredictRequest):
    pred = model.predict([req.features])[0]
    return {"prediction": pred, "probability": 0.92}

De parameter response_model

Geef response_model mee aan de routerdecorateur. FastAPI valideert de uitvoer en filtert die zodat deze overeenkomt met het schema. Extra velden worden verwijderd en de reactie wordt in /docs gedocumenteerd.

@app.post("/predict", response_model=PredictResponse)
def predict(req: PredictRequest) -> PredictResponse:
    return PredictResponse(prediction=1.0, probability=0.92)

list[float] voor kenmerkvectoren

Als je kenmerken typt als list[float], wijst Pydantic tekenreeksen of gemengde typen af vóór de inferentie. Zo worden verkeerd gevormde invoergegevens aan de grens onderschept in plaats van diep in de modelcode.

HTTPException voor fouten

Wanneer de typevalidatie slaagt maar bedrijfsregels mislukken, bijvoorbeeld door een verkeerd aantal kenmerken of een onbekend model, werp je HTTPException op met een statuscode en bericht.

from fastapi import HTTPException

@app.post("/predict")
def predict(req: PredictRequest):
    if len(req.features) != 4:
        raise HTTPException(status_code=422,
            detail="Expected exactly 4 features")
    return {"prediction": model.predict([req.features])[0]}

Veldvalidators

Een field_validator dwingt aangepaste regels voor een veld af, zoals het afwijzen van lege kenmerkenlijsten, nog voordat de logica van het eindpunt wordt uitgevoerd.

from pydantic import BaseModel, field_validator

class PredictRequest(BaseModel):
    features: list[float]

    @field_validator("features")
    @classmethod
    def not_empty(cls, v):
        if not v:
            raise ValueError("features cannot be empty")
        return v

Veldbeperkingen

Gebruik Field voor declaratieve beperkingen, zoals een minimumlengte of numerieke bereiken. Deze verschijnen ook in de automatisch gegenereerde documentatie.

from pydantic import BaseModel, Field

class PredictRequest(BaseModel):
    features: list[float] = Field(min_length=1)

Automatische 422-reacties

Wanneer een verzoek de validatie van Pydantic niet doorstaat, retourneert FastAPI automatisch een 422 Unprocessable Entity met een gedetailleerde foutinhoud, zonder dat extra code nodig is. Dit is een van de grootste productiviteitswinsten van FastAPI.

Korte toets

Toets je kennis van Pydantic-schema's.

Samenvatting

Je hebt BaseModel-schema's voor verzoeken en reacties gedefinieerd, list[float] voor kenmerken gebruikt, response_model toegepast, HTTPException voor bedrijfsfouten opgegooid en veldvalidators toegevoegd. FastAPI retourneert automatisch 422 bij ongeldige invoer. Volgende onderwerp: het model laden en aanbieden.

Gratis beginnen

Leer Python met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
53
Lessen
225

Veelgestelde vragen

Is de les “Pydantic-schema's voor requests en responses” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad Leer AI met Python, waaronder “Pydantic-schema's voor requests en responses”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Leer AI met Python bevat in totaal 4 lessen.

Wat leer ik in “Pydantic-schema's voor requests en responses”?

BaseModel, veldvalidatie, type hints, response_model, validatiefouten afhandelen. Je oefent met Leer AI met Python door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Leer AI met Python te beginnen?

Ervaring vooraf is niet nodig. Leer AI met Python op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.

Hoe lang duurt de les “Pydantic-schema's voor requests en responses”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Leer AI met Python?

Ja. Elke les over Leer AI met Python bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. FastAPI-basis voor ML-engineers
  2. Pydantic-schema's voor requests en responses
  3. ML-modellen laden en serveren
  4. De model-API containeriseren met Docker
← Terug naar Leer AI met Python