0Pricing
Learn AI with Python · Ders

İstek ve Yanıt için Pydantic Şemaları

BaseModel, alan doğrulama, tür ipuçları, response_model, doğrulama hatalarını ele alma.

İstek ve Yanıt için Pydantic Şemaları, CoddyKit'te ücretsiz bir Learn AI with Python dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Learn AI with Python öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Learn AI with Python kursu toplamda 4 dersten oluşur.

Şemalar Neden Gerekli?

Ham sözlükler hataya açıktır. Pydantic modelleri, istek ve yanıtların kesin yapısını tanımlar; türleri otomatik olarak doğrular ve API'nizi belgeler. FastAPI bunları yerel olarak kullanır.

BaseModel

Pydantic şemaları BaseModel sınıfından türetilir. Türü belirtilmiş her öznitelik doğrulanan bir alan hâline gelir; yanlış türler kodunuz çalışmadan önce reddedilir.

from pydantic import BaseModel

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

Bir İstek Şeması

İstemcilerin ne göndermesi gerektiğini tanımlayın. Burada features bir kayan nokta listesinden oluşmalıdır; ayrıca model sürümü veya istek kimliği gibi alanlar da ekleyebilirsiniz.

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

Bir Yanıt Şeması

API'nizin ne döndürdüğünü tanımlayın; böylece istemciler kararlı ve belgelenmiş bir sözleşmeye sahip olur.

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

Bir Uç Noktada Şemaları Kullanma

Parametreyi istek modelinizle türlendirin; FastAPI JSON gövdesini otomatik olarak ayrıştırıp doğrulayarak türü belirlenmiş bir nesneye dönüştürür.

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}

response_model Parametresi

Rota dekoratörüne response_model geçirin. FastAPI çıktıyı şemayla eşleşecek şekilde doğrular ve filtreler, fazladan alanları çıkarır ve yanıtı /docs içinde belgeler.

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

Özellik Vektörleri için list[float]

Özellikleri list[float] olarak türlendirmek, çıkarım işleminden önce Pydantic'in dizeleri veya karışık türleri reddetmesini sağlar. Böylece hatalı girdi, model kodunun derinliklerinde değil sınırda yakalanır.

Hatalar için HTTPException

Doğrulama türleri geçerli bulduğu hâlde iş kuralları ihlal edildiğinde (özellik sayısı yanlışsa veya model bilinmiyorsa), bir durum kodu ve iletiyle HTTPException oluşturun.

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

Alan Doğrulayıcıları

field_validator, uç noktanın mantığı çalışmadan önce boş özellik listelerini reddetmek gibi bir alana özel kuralları uygular.

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

Alan Kısıtlamaları

Otomatik oluşturulan belgelerde de görünen minimum uzunluk veya sayısal aralıklar gibi bildirimsel kısıtlamalar için Field kullanın.

from pydantic import BaseModel, Field

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

Otomatik 422 Yanıtları

Bir istek Pydantic doğrulamasından geçemediğinde FastAPI, ek kod gerektirmeden ayrıntılı bir hata gövdesiyle 422 İşlenemeyen Varlık yanıtını otomatik olarak döndürür. Bu, FastAPI'nin en büyük üretkenlik kazanımlarından biridir.

Hızlı Kontrol

Pydantic şemaları bilginizi sınayın.

Özet

İstekler ve yanıtlar için BaseModel şemaları tanımladınız, özellikler için list[float] kullandınız, response_model uyguladınız, iş hataları için HTTPException oluşturdunuz ve alan doğrulayıcıları eklediniz. FastAPI geçersiz girdilerde 422 yanıtını otomatik olarak döndürür. Sırada modeli yükleme ve sunma var.

Sıkça Sorulan Sorular

“İstek ve Yanıt için Pydantic Şemaları” dersi ücretsiz mi?

Evet — “İstek ve Yanıt için Pydantic Şemaları” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Learn AI with Python kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Learn AI with Python kursu toplamda 4 dersten oluşur.

“İstek ve Yanıt için Pydantic Şemaları” dersinde ne öğreneceğim?

BaseModel, alan doğrulama, tür ipuçları, response_model, doğrulama hatalarını ele alma. Learn AI with Python ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Learn AI with Python öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Learn AI with Python, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“İstek ve Yanıt için Pydantic Şemaları” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Learn AI with Python dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Learn AI with Python dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Makine Öğrenmesi Mühendisleri için FastAPI Temelleri
  2. İstek ve Yanıt için Pydantic Şemaları
  3. Makine Öğrenmesi Modellerini Yükleme ve Sunma
  4. Model API'sini Docker ile Konteynerleştirme
← Learn AI with Python Sayfasına Dön