Pydantic-skjemaer for forespørsler og svar
BaseModel, feltvalidering, typeannotasjoner, response_model og håndtering av valideringsfeil.
Pydantic-skjemaer for forespørsler og svar er en gratis leksjon i Lær AI med Python på CoddyKit. Dette er leksjon 2 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Lær AI med Python, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Lær AI med Python inneholder totalt 4 leksjoner.
Hvorfor skjemaer?
Rå dict-objekter er utsatt for feil. Pydantic-modeller definerer den nøyaktige formen på forespørsler og svar, validerer datatyper automatisk og dokumenterer API-et. FastAPI bruker dem direkte.
BaseModel
Pydantic-skjemaer arver fra BaseModel. Hvert typeangitte attributt blir et validert felt; feil datatyper avvises før koden kjøres.
from pydantic import BaseModel
class PredictRequest(BaseModel):
features: list[float]Et forespørselsskjema
Definer hva klientene må sende. Her må features være en liste med flyttall, og det kan legges til flere felt, for eksempel en modellversjon eller en forespørsels-ID.
class PredictRequest(BaseModel):
features: list[float]
model_version: str = "latest"Et svarskjema
Definer hva API-et returnerer, slik at klientene får en stabil og dokumentert kontrakt.
class PredictResponse(BaseModel):
prediction: float
probability: floatBruke skjemaer i et endepunkt
Angi forespørselsmodellen som type for parameteren, så analyserer og validerer FastAPI JSON-innholdet automatisk til et typeangitt 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}Parameteren response_model
Send response_model til rutedeoratoren. FastAPI validerer og filtrerer resultatet slik at det samsvarer med skjemaet, fjerner eventuelle ekstra felt og dokumenterer svaret i /docs.
@app.post("/predict", response_model=PredictResponse)
def predict(req: PredictRequest) -> PredictResponse:
return PredictResponse(prediction=1.0, probability=0.92)list[float] for funksjonsvektorer
Hvis features angis som list[float], avviser Pydantic strenger eller blandede typer før inferensen starter. Dermed oppdages ugyldige inndata ved grensesnittet i stedet for langt inne i modellkoden.
HTTPException for feil
Når typevalideringen består, men forretningsreglene brytes (feil antall funksjoner eller en ukjent modell), heves HTTPException med en statuskode og en melding.
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]}Feltvalidatorer
En field_validator håndhever egendefinerte regler for et felt, for eksempel ved å avvise tomme funksjonslister, før endepunktlogikken i det hele tatt kjøres.
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 vFeltbegrensninger
Bruk Field for deklarative begrensninger som minimumslengde eller numeriske intervaller. Disse vises også i den automatisk genererte dokumentasjonen.
from pydantic import BaseModel, Field
class PredictRequest(BaseModel):
features: list[float] = Field(min_length=1)Automatiske 422-svar
Når en forespørsel ikke består Pydantic-valideringen, returnerer FastAPI automatisk 422 Unprocessable Entity med en detaljert feilbeskrivelse, uten behov for ekstra kode. Dette er en av FastAPIs største produktivitetsgevinster.
Hurtigsjekk
Test kunnskapene om Pydantic-skjemaer.
Oppsummering
Det ble definert BaseModel-skjemaer for forespørsler og svar, list[float] ble brukt for funksjoner, response_model ble tatt i bruk, HTTPException ble hevet for forretningsfeil, og feltvalidatorer ble lagt til. FastAPI returnerer automatisk 422 ved ugyldige inndata. Neste tema er lasting og levering av modellen.
Lær deg Python med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 53
- Leksjoner
- 225
Ofte stilte spørsmål
Er leksjonen «Pydantic-skjemaer for forespørsler og svar» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Lær AI med Python, inkludert «Pydantic-skjemaer for forespørsler og svar», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Lær AI med Python inneholder totalt 4 leksjoner.
Hva lærer jeg i «Pydantic-skjemaer for forespørsler og svar»?
BaseModel, feltvalidering, typeannotasjoner, response_model og håndtering av valideringsfeil. Du øver på Lær AI med Python med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Lær AI med Python?
Ingen tidligere erfaring er nødvendig. Lær AI med Python på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.
Hvor lang tid tar leksjonen «Pydantic-skjemaer for forespørsler og svar»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Lær AI med Python-leksjonen?
Ja. Alle Lær AI med Python-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Grunnleggende FastAPI for ML-utviklere
- Pydantic-skjemaer for forespørsler og svar
- Innlasting og tilgjengeliggjøring av ML-modeller
- Konteinerisering av modell-API-et