0Pricing
Learn AI with Python · درس

أساسيات FastAPI لمهندسي التعلم الآلي

تطبيق FastAPI، ونقاط نهاية GET/POST، ومعاملات المسار والاستعلام، وasync def مقابل def للاستدلال بالتعلم الآلي

أساسيات FastAPI لمهندسي التعلم الآلي درس مجاني في Learn AI with Python على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Learn AI with Python، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Learn AI with Python 4 دروس في المجموع.

لماذا FastAPI لتعلّم الآلة؟

يُعد FastAPI إطار عمل حديثًا للويب باستخدام Python، وهو مثالي لتقديم النماذج: فهو سريع، وينشئ توثيقًا تفاعليًا تلقائيًا، ويتحقق من صحة الطلبات باستخدام تلميحات الأنواع. وقد أصبح الطريقة الافتراضية لوضع نموذج خلف واجهة HTTP API.

إنشاء التطبيق

أنشئوا تطبيق FastAPI؛ إذ يحتفظ كائن app هذا بكل نقاط النهاية الخاصة بكم.

from fastapi import FastAPI

app = FastAPI(title="Model Serving API")

نقطة النهاية GET /health

يتيح فحص الحالة الصحية لموازنات الحمل والمنسّقات التأكد من أن الخدمة تعمل. ويعيد حالة بسيطة من دون تنفيذ عمليات ثقيلة.

@app.get("/health")
def health():
    return {"status": "ok"}

نقطة النهاية POST /predict

تحتاج التنبؤات إلى بيانات إدخال، ولذلك تستخدم POST مع جسم للطلب. وتتلقى الدالة الحمولة التي جرى تحليلها، ثم تعيد مخرجات النموذج.

@app.post("/predict")
def predict(features: list[float]):
    result = model.predict([features])
    return {"prediction": result[0]}

GET أم POST؟

  • GET: استرجاع البيانات، من دون جسم للطلب، ويُستخدم لفحوصات الحالة الصحية وعمليات القراءة البسيطة.
  • POST: إرسال البيانات في جسم الطلب، ويُستخدم للتنبؤات التي ترسلون فيها السمات.

التشغيل باستخدام uvicorn

يُعد uvicorn خادم ASGI الذي يشغّل FastAPI. ويمكنكم تشغيله من الشيفرة أو من سطر الأوامر.

import uvicorn

if __name__ == "__main__":
    uvicorn.run(app, host="0.0.0.0", port=8000)

التشغيل من سطر الأوامر

غالبًا ما تشغّلونه عبر واجهة سطر الأوامر، مع توجيه uvicorn إلى الوحدة وكائن التطبيق. ويعيد --reload التشغيل تلقائيًا عند تغيير الشيفرة أثناء التطوير.

# terminal
uvicorn main:app --host 0.0.0.0 --port 8000 --reload

توثيق تفاعلي مجانًا

ينشئ FastAPI تلقائيًا واجهة Swagger UI في /docs وواجهة ReDoc في /redoc انطلاقًا من تلميحات الأنواع، ولذلك يمكنكم اختبار نقاط النهاية في المتصفح من دون كتابة أي شيفرة إضافية.

async def للعمليات المقيّدة بالإدخال والإخراج

استخدموا async def لنقاط النهاية التي تنتظر عمليات الإدخال والإخراج (مثل قاعدة البيانات وواجهات API الخارجية وقراءة الملفات). يتيح التنفيذ غير المتزامن للخادم معالجة طلبات أخرى أثناء الانتظار، مما يحسّن الإنتاجية.

@app.get("/external")
async def fetch():
    data = await call_remote_service()
    return data

sync def للاستدلال المقيّد بالمعالج

عادةً ما يكون predict الخاص بالنموذج مقيّدًا بالمعالج. عرّفوا نقاط النهاية هذه باستخدام sync def العادي؛ إذ يشغّلها FastAPI في مجمع خيوط تنفيذ حتى لا تحظر حلقة الأحداث. أما استخدام async للعمل كثيف المعالجة فسيؤدي فعليًا إلى تجميد الخادم.

@app.post("/predict")
def predict(features: list[float]):
    # CPU-bound inference -> sync def
    return {"prediction": model.predict([features])[0]}

اختيار async أو sync

  • async def: للعمليات المقيّدة بالإدخال والإخراج، وتنتظر الشبكة أو القرص.
  • sync def: لاستدلال النموذج المقيّد بالمعالج، ويعمل في مجمع خيوط تنفيذ.

يساعد اختيار النوع المناسب الخادم على البقاء سريع الاستجابة تحت الحمل.

اختبار سريع

اختبروا أساسيات FastAPI لديكم.

مراجعة

أنشأتم خدمة FastAPI: أنشأتم app، وأضفتم GET /health وPOST /predict، وشغّلتموها باستخدام uvicorn، وتعلّمتم استخدام async def للعمليات المقيّدة بالإدخال والإخراج وsync def للاستدلال المقيّد بالمعالج. التالي: مخططات طلبات واستجابات Pydantic.

الأسئلة الشائعة

هل درس «أساسيات FastAPI لمهندسي التعلم الآلي» مجاني؟

نعم — نص درس «أساسيات FastAPI لمهندسي التعلم الآلي» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Learn AI with Python، انتقل إلى CoddyKit PRO. تتضمن دورة Learn AI with Python 4 دروس في المجموع.

ماذا ستتعلم في «أساسيات FastAPI لمهندسي التعلم الآلي»؟

تطبيق FastAPI، ونقاط نهاية GET/POST، ومعاملات المسار والاستعلام، وasync def مقابل def للاستدلال بالتعلم الآلي تتمرن على Learn AI with Python مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Learn AI with Python؟

لا تُشترط خبرة سابقة. Learn AI with Python على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «أساسيات FastAPI لمهندسي التعلم الآلي»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Learn AI with Python هذا؟

نعم. كل درس في Learn AI with Python يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. أساسيات FastAPI لمهندسي التعلم الآلي
  2. مخططات Pydantic للطلبات والاستجابات
  3. تحميل نماذج التعلم الآلي وتقديمها
  4. تحويل واجهة النموذج إلى حاوية Docker
← العودة إلى Learn AI with Python