0Pricing
Learn AI with Python · Lektion

Pydantic-Schemas für Requests und Responses

BaseModel, Feldvalidierung, Type Hints, response_model, Umgang mit Validierungsfehlern.

Pydantic-Schemas für Requests und Responses ist eine kostenlose Learn AI with Python-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Learn AI with Python-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Learn AI with Python-Kurs umfasst insgesamt 4 Lektionen.

Warum Schemas?

Rohe Dicts sind fehleranfällig. Pydantic-Modelle definieren die genaue Struktur von Requests und Responses, validieren Typen automatisch und dokumentieren Ihre API. FastAPI verwendet sie nativ.

Das BaseModel

Pydantic-Schemas leiten sich von BaseModel ab. Jedes typisierte Attribut wird zu einem validierten Feld; falsche Typen werden abgelehnt, bevor Ihr Code ausgeführt wird.

from pydantic import BaseModel

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

Ein Request-Schema

Definieren Sie, was Clients senden müssen. Hier muss features eine Liste von Gleitkommazahlen sein. Außerdem können Sie weitere Felder wie eine Modellversion oder eine Request-ID hinzufügen.

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

Ein Response-Schema

Definieren Sie, was Ihre API zurückgibt, damit Clients einen stabilen, dokumentierten Vertrag erhalten.

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

Schemas in einem Endpunkt verwenden

Typisieren Sie den Parameter mit Ihrem Request-Modell. FastAPI parst und validiert den JSON-Body dann automatisch in ein typisiertes Objekt.

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}

Der Parameter response_model

Übergeben Sie response_model an den Routen-Decorator. FastAPI validiert die Ausgabe und filtert sie so, dass sie dem Schema entspricht. Dabei werden zusätzliche Felder entfernt und die Response in /docs dokumentiert.

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

list[float] für Feature-Vektoren

Wenn Sie Features als list[float] typisieren, lehnt Pydantic Strings oder gemischte Typen vor der Inferenz ab. So werden fehlerhafte Eingaben an der Schnittstelle erkannt und nicht erst tief im Modellcode.

HTTPException für Fehler

Wenn die Typvalidierung erfolgreich ist, aber Geschäftsregeln verletzt werden (falsche Anzahl an Features, unbekanntes Modell), lösen Sie HTTPException mit einem Statuscode und einer Nachricht aus.

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]}

Feldvalidierung

Ein field_validator erzwingt benutzerdefinierte Regeln für ein Feld, etwa das Ablehnen leerer Feature-Listen, noch bevor die Logik des Endpunkts ausgeführt wird.

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

Feldeinschränkungen

Verwenden Sie Field für deklarative Einschränkungen wie eine Mindestlänge oder numerische Wertebereiche. Diese erscheinen ebenfalls in der automatisch generierten Dokumentation.

from pydantic import BaseModel, Field

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

Automatische 422-Responses

Wenn eine Anfrage die Pydantic-Validierung nicht besteht, gibt FastAPI automatisch eine 422 Unprocessable Entity-Response mit einem detaillierten Fehler-Body zurück. Dafür ist kein zusätzlicher Code erforderlich. Das ist einer der größten Produktivitätsvorteile von FastAPI.

Kurzer Test

Testen Sie Ihr Wissen über Pydantic-Schemas.

Zusammenfassung

Sie haben BaseModel-Schemas für Requests und Responses definiert, list[float] für Features verwendet, response_model eingesetzt, HTTPException für Geschäftsfehler ausgelöst und field_validator hinzugefügt. FastAPI gibt bei ungültigen Eingaben automatisch den Status 422 zurück. Als Nächstes laden Sie das Modell und stellen es bereit.

Häufig gestellte Fragen

Ist die Lektion „Pydantic-Schemas für Requests und Responses“ kostenlos?

Ja — der vollständige Text von „Pydantic-Schemas für Requests und Responses“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Learn AI with Python-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Learn AI with Python-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Pydantic-Schemas für Requests und Responses“?

BaseModel, Feldvalidierung, Type Hints, response_model, Umgang mit Validierungsfehlern. Du übst Learn AI with Python mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Learn AI with Python zu starten?

Keine Vorkenntnisse erforderlich. Learn AI with Python auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.

Wie lange dauert die Lektion „Pydantic-Schemas für Requests und Responses“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Learn AI with Python-Lektion Code schreiben und ausführen?

Ja. Jede Learn AI with Python-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. FastAPI-Grundlagen für ML Engineers
  2. Pydantic-Schemas für Requests und Responses
  3. ML-Modelle laden und bereitstellen
  4. Die Model-API mit Docker containerisieren
← Zurück zu Learn AI with Python