0Pricing
MLOps Academy · บทเรียน

ตรวจสอบคำขอด้วย Pydantic

ปฏิเสธอินพุตที่มีรูปแบบไม่ถูกต้องก่อนส่งถึงโมเดล

ตรวจสอบคำขอด้วย Pydantic เป็นบทเรียน MLOps Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน MLOps Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส MLOps Academy มีบทเรียนทั้งหมด 4 บทเรียน

ข้อมูลขยะเข้า ขยะออก

หากไคลเอ็นต์ส่งฟิลด์หรือชนิดข้อมูลไม่ถูกต้อง โมเดลของคุณก็จะได้รับข้อมูลไร้สาระ คุณควรปฏิเสธข้อมูลนำเข้าที่ไม่ถูกต้อง ก่อน ที่ข้อมูลนั้นจะไปถึงโมเดล 🛡️

รู้จัก Pydantic

FastAPI ใช้ Pydantic เพื่อตรวจสอบคำขอ คุณอธิบายโครงสร้างข้อมูลด้วยคลาส Python แล้วระบบจะตรวจสอบให้โดยอัตโนมัติ

กำหนดสคีมา

คุณสร้างคลาสย่อยของ BaseModel และระบุฟิลด์พร้อมชนิดข้อมูล คลาสนี้จะกลายเป็นข้อตกลงสำหรับเนื้อหาคำขอของ /predict

from pydantic import BaseModel

class IrisInput(BaseModel):
    sepal_length: float
    petal_width: float

ใช้ในเส้นทาง

คุณใส่คำอธิบายชนิดข้อมูลให้กับอาร์กิวเมนต์ของ endpoint โดยใช้โมเดลของคุณ FastAPI จะแยกวิเคราะห์ ตรวจสอบ และส่งมอบ object ที่สะอาดให้คุณ

@app.post("/predict")
def predict(data: IrisInput):
    ...

เข้าถึงฟิลด์

ภายในฟังก์ชัน ข้อมูลที่ผ่านการตรวจสอบแล้วจะเป็นอ็อบเจ็กต์ปกติ คุณอ่านค่าแต่ละค่าด้วยการเข้าถึงแบบ จุด อย่างง่าย

x = [data.sepal_length, data.petal_width]
pred = model.predict([x])

ข้อผิดพลาด 422 อัตโนมัติ

หากฟิลด์ขาดหายหรือมีชนิดข้อมูลไม่ถูกต้อง FastAPI จะส่งคืนการตอบกลับ 422 พร้อมข้อความที่ชัดเจน คุณไม่ต้องเขียนโค้ดจัดการข้อผิดพลาดเลย

เพิ่มข้อจำกัดของค่า

คุณบังคับใช้ช่วงของค่าได้ด้วย Field ในที่นี้ ค่าการวัดต้องมากกว่าศูนย์ ดังนั้นค่าติดลบจะถูกปฏิเสธโดยอัตโนมัติ

from pydantic import Field

sepal_length: float = Field(gt=0)

ตรวจสอบลิสต์ของแถวข้อมูล

หากต้องการประเมินตัวอย่างจำนวนมากในครั้งเดียว คุณรับ list ของโมเดลไว้ Pydantic จะตรวจสอบทุกรายการในชุดข้อมูลให้คุณ

@app.post("/predict")
def predict(rows: list[IrisInput]):
    ...

จัดทำเอกสารให้ฟิลด์

เพิ่มคำอธิบายและตัวอย่างให้กับฟิลด์ แล้วข้อมูลเหล่านั้นจะแสดงในหน้า /docs เพื่อให้ผู้เรียกทราบอย่างชัดเจนว่าต้องส่งอะไร 📘

sepal_length: float = Field(description="cm", examples=[5.1])

กำหนดรูปแบบการตอบกลับด้วย

คุณประกาศ response_model ได้ เพื่อให้ผลลัพธ์ได้รับการตรวจสอบและจัดทำเอกสารเช่นเดียวกับข้อมูลนำเข้า ทำให้ข้อตกลงของ API รัดกุม

@app.post("/predict", response_model=Prediction)
def predict(data: IrisInput):
    ...

เหตุผลที่เรื่องนี้สำคัญ

การตรวจสอบข้อมูลนำเข้าอย่างเข้มงวดคือแนวป้องกันด่านแรกในระบบจริง โดยจะบล็อกคำขอที่มีรูปแบบไม่ถูกต้อง เพื่อให้ model เห็นเฉพาะข้อมูลที่สะอาดและเป็นไปตามที่คาดไว้ ✅

ตรวจสอบอย่างรวดเร็ว

ไคลเอ็นต์ส่งคำขอที่ขาดฟิลด์ซึ่งจำเป็น FastAPI จะทำอะไรด้วยความช่วยเหลือของ Pydantic

ทบทวน

คุณกำหนดสคีมา BaseModel ใส่ชนิดข้อมูลให้เส้นทาง เพิ่มข้อจำกัดของฟิลด์ และให้ FastAPI ปฏิเสธข้อมูลนำเข้าที่ไม่ถูกต้องโดยอัตโนมัติพร้อมข้อผิดพลาด 422 ที่ชัดเจน ข้อมูลสะอาดพร้อมใช้งาน! 🙌

คำถามที่พบบ่อย

บทเรียน “ตรวจสอบคำขอด้วย Pydantic” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “ตรวจสอบคำขอด้วย Pydantic” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส MLOps Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส MLOps Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “ตรวจสอบคำขอด้วย Pydantic”

ปฏิเสธอินพุตที่มีรูปแบบไม่ถูกต้องก่อนส่งถึงโมเดล คุณปฏิบัติ MLOps Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน MLOps Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน MLOps Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “ตรวจสอบคำขอด้วย Pydantic” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน MLOps Academy นี้ได้ไหม

ได้ บทเรียน MLOps Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ปลายทาง /predict แรกของคุณ
  2. ตรวจสอบคำขอด้วย Pydantic
  3. โหลดโมเดลเพียงครั้งเดียวตอนเริ่มต้น
  4. เพิ่มการตรวจสอบความพร้อมใช้งานที่ /health
← กลับไปที่ MLOps Academy