Pelajari AI dengan Python · Pelajaran

Skema Pydantic untuk Permintaan dan Respons

BaseModel, pengesahan medan, petunjuk jenis, response_model, mengendalikan ralat pengesahan.

Pelajaran 2 daripada 413 langkah

Skema Pydantic untuk Permintaan dan Respons ialah pelajaran Pelajari AI dengan Python percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Pelajari AI dengan Python, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Pelajari AI dengan Python merangkumi sejumlah 4 pelajaran.

Mengapa Skema?

Kamus mentah mudah menyebabkan ralat. Model Pydantic mentakrifkan bentuk tepat permintaan dan respons, mengesahkan jenis secara automatik serta mendokumentasikan API anda. FastAPI menggunakannya secara asli.

BaseModel

Skema Pydantic ialah subkelas BaseModel. Setiap atribut yang mempunyai jenis menjadi medan yang disahkan; jenis yang salah ditolak sebelum kod anda dijalankan.

from pydantic import BaseModel

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

Skema Permintaan

Takrifkan perkara yang mesti dihantar oleh klien. Di sini, features mestilah senarai nombor perpuluhan, dan anda boleh menambah medan lain seperti versi model atau id permintaan.

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

Skema Respons

Takrifkan perkara yang dikembalikan oleh API anda supaya klien menerima kontrak yang stabil dan didokumentasikan.

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

Menggunakan Skema dalam Titik Akhir

Taipkan parameter menggunakan model permintaan anda, kemudian FastAPI menghuraikan dan mengesahkan isi JSON secara automatik menjadi objek yang mempunyai jenis.

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}

Parameter response_model

Hantar response_model kepada penghias laluan. FastAPI mengesahkan dan menapis keluaran supaya sepadan dengan skema, membuang medan tambahan serta mendokumentasikan respons di /docs.

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

list[float] untuk Vektor Ciri

Mentaipkan features sebagai list[float] bermakna Pydantic menolak rentetan atau jenis bercampur sebelum inferens, lalu mengesan masukan yang tidak sah di sempadan dan bukannya jauh di dalam kod model.

HTTPException untuk Ralat

Apabila pengesahan jenis berjaya tetapi peraturan perniagaan gagal (bilangan ciri yang salah, model tidak diketahui), naikkan HTTPException dengan kod status dan mesej.

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

Pengesah Medan

field_validator menguatkuasakan peraturan tersuai pada medan, seperti menolak senarai ciri yang kosong, sebelum logik titik akhir dijalankan.

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

Kekangan Medan

Gunakan Field untuk kekangan pengisytiharan seperti panjang minimum atau julat angka, yang turut muncul dalam dokumentasi yang dijana secara automatik.

from pydantic import BaseModel, Field

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

Respons 422 Automatik

Apabila permintaan gagal dalam pengesahan Pydantic, FastAPI secara automatik mengembalikan 422 Entiti Tidak Boleh Diproses dengan isi ralat terperinci tanpa memerlukan kod tambahan. Ini merupakan salah satu kelebihan produktiviti terbesar FastAPI.

Semakan Pantas

Uji pengetahuan anda tentang skema Pydantic.

Ringkasan

Anda telah mentakrifkan skema BaseModel untuk permintaan dan respons, menggunakan list[float] untuk ciri, menggunakan response_model, menaikkan HTTPException untuk ralat perniagaan serta menambah pengesah medan. FastAPI mengembalikan 422 secara automatik untuk masukan yang tidak sah. Seterusnya: memuatkan dan menyediakan model.

Percuma untuk bermula

Pelajari Python dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
53
Pelajaran
225

Soalan Lazim

Adakah pelajaran “Skema Pydantic untuk Permintaan dan Respons” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Pelajari AI dengan Python, termasuk “Skema Pydantic untuk Permintaan dan Respons”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Pelajari AI dengan Python merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Skema Pydantic untuk Permintaan dan Respons”?

BaseModel, pengesahan medan, petunjuk jenis, response_model, mengendalikan ralat pengesahan. Anda berlatih Pelajari AI dengan Python menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Pelajari AI dengan Python?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Pelajari AI dengan Python di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.

Berapa lamakah pelajaran “Skema Pydantic untuk Permintaan dan Respons” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Pelajari AI dengan Python ini?

Ya. Setiap pelajaran Pelajari AI dengan Python menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Asas FastAPI untuk Jurutera Pembelajaran Mesin
  2. Skema Pydantic untuk Permintaan dan Respons
  3. Memuatkan dan Menyediakan Model Pembelajaran Mesin
  4. Menyediakan API Model dalam Docker
← Kembali ke Pelajari AI dengan Python