بناء واجهة برمجة تطبيقات LLM عالية الأداء وجاهزة للإنتاج باستخدام FastAPI: دليل خطوة بخطوة

2/19/2026
5 min read

بناء واجهة برمجة تطبيقات LLM عالية الأداء وجاهزة للإنتاج باستخدام FastAPI: دليل خطوة بخطوة

FastAPI، كإطار عمل ويب Python حديث وعالي الأداء، يحظى بشعبية كبيرة لسهولة استخدامه وسرعته ووثائق API التي يتم إنشاؤها تلقائيًا. على وجه الخصوص، في بناء واجهة برمجة تطبيقات خلفية لتطبيقات LLM (نموذج اللغة الكبير)، تُظهر FastAPI مزايا قوية. ستعلمك هذه المقالة خطوة بخطوة كيفية استخدام FastAPI لبناء واجهة برمجة تطبيقات LLM جاهزة للإنتاج، واستكشاف بعض أفضل الممارسات.

لماذا تختار FastAPI؟

عند إنشاء واجهة برمجة تطبيقات لتطبيقات LLM، توفر FastAPI المزايا الرئيسية التالية:

  • أداء عالي: استنادًا إلى ASGI، يمكن لـ FastAPI التعامل مع طلبات متزامنة عالية، وهو أمر بالغ الأهمية لتطبيقات LLM التي تتطلب استجابة سريعة.
  • دعم غير متزامن: تدعم FastAPI بشكل مدمج الكلمات الرئيسية async و await، مما يسهل التعامل مع العمليات غير المتزامنة، مثل استدعاء استنتاج LLM، وتجنب حظر مؤشر الترابط الرئيسي.
  • وثائق API تلقائية: تستخدم FastAPI OpenAPI و JSON Schema لإنشاء وثائق API تفاعلية تلقائيًا (Swagger UI)، مما يسهل على المطورين اختبار واجهة برمجة التطبيقات الخاصة بك واستخدامها.
  • التحقق من صحة البيانات: تستخدم FastAPI Pydantic للتحقق من صحة البيانات، مما يضمن صحة معلمات الطلب ويقلل الأخطاء.
  • حقن التبعية: يمكن لنظام حقن التبعية في FastAPI إدارة الموارد ومشاركتها بسهولة، مثل نماذج LLM.
  • مجتمع نشط: تمتلك FastAPI مجتمعًا كبيرًا ونشطًا، ويمكنك الحصول على موارد ودعم غني.

عمل تحضيري

  1. تثبيت Python: تأكد من تثبيت Python 3.7 أو إصدار أحدث.

  2. تثبيت FastAPI و Uvicorn: استخدم pip لتثبيت FastAPI و Uvicorn (خادم ASGI):

    pip install fastapi uvicorn
    
  3. اختر نموذج LLM: اختر نموذج LLM الذي تريد استخدامه. يمكن أن يكون نموذج OpenAI، أو يمكن أن يكون نموذجًا مفتوح المصدر، مثل TinyLlama. إذا اخترت OpenAI، فأنت بحاجة إلى الحصول على مفتاح OpenAI API. إذا اخترت TinyLlama، فأنت بحاجة إلى تنزيل ملف النموذج.

الخطوة 1: إنشاء تطبيق FastAPI

أنشئ ملفًا باسم main.py وأضف الكود التالي:

from fastapi import FastAPI, HTTPException
from pydantic import BaseModel

app = FastAPI(title="LLM API", description="A simple API for interacting with LLMs.")

class InputText(BaseModel):
    text: str

class OutputText(BaseModel):
    generated_text: str

يحدد هذا الكود تطبيق FastAPI ويعرف نموذجين Pydantic: InputText لقبول نص الإدخال، و OutputText لإرجاع النص الذي تم إنشاؤه.

الخطوة 2: إضافة منطق استنتاج LLM

وفقًا لنموذج LLM الذي اخترته، أضف منطق الاستدلال المقابل. هنا، يتم استخدام OpenAI API كمثال:

import openai
import os

# الحصول على مفتاح OpenAI API
openai.api_key = os.environ.get("OPENAI_API_KEY")  # يوصى باستخدام متغيرات البيئة
@app.post("/generate", response_model=OutputText)
async def generate_text(input_text: InputText):
    """
    Generates text based on the input text using OpenAI.
    """
    try:
        response = openai.Completion.create(
            engine="text-davinci-003", # اختيار النموذج
            prompt=input_text.text,
            max_tokens=150,
            n=1,
            stop=None,
            temperature=0.7,
        )
        generated_text = response.choices[0].text.strip()
        return OutputText(generated_text=generated_text)
    except Exception as e:
        raise HTTPException(status_code=500, detail=str(e))

هذا الكود يعرّف مسار /generate، الذي يستقبل كائن InputText كمدخل، ويستدعي OpenAI API لإنشاء نص، ويعيد النص الذي تم إنشاؤه ككائن OutputText. لاحظ استبدال text-davinci-003 بالنموذج المناسب الذي تختاره.

إذا كنت تستخدم نماذج محلية مثل TinyLlama، فأنت بحاجة إلى تثبيت المكتبات المقابلة، مثل transformers، وتحميل النموذج في الذاكرة. مثال على الكود كما يلي:

from transformers import pipeline
import torch

generator = pipeline('text-generation', model="TinyLlama/TinyLlama-1.1B-Chat-v1.0", torch_dtype=torch.bfloat16, device_map="auto")

@app.post("/generate", response_model=OutputText)
async def generate_text(input_text: InputText):
    """
    Generates text based on the input text using TinyLlama.
    """
    try:
        generated_text = generator(input_text.text, max_length=50, do_sample=True, temperature=0.7)[0]['generated_text']
        return OutputText(generated_text=generated_text)
    except Exception as e:
        raise HTTPException(status_code=500, detail=str(e))

الخطوة 3: تشغيل تطبيق FastAPI

قم بتشغيل تطبيق FastAPI باستخدام Uvicorn:

uvicorn main:app --reload
```سيؤدي هذا إلى تشغيل خادم محلي، يمكنك الوصول إليه في المتصفح الخاص بك عن طريق `http://127.0.0.1:8000/docs` لعرض وثائق API التي تم إنشاؤها تلقائيًا.  يمكن للمعامل `--reload` إعادة تشغيل الخادم تلقائيًا بعد تعديل التعليمات البرمجية، مما يسهل التطوير.

## الخطوة 4: اختبار API

استخدم وثائق API أو أدوات مثل curl لاختبار API الخاص بك. على سبيل المثال، استخدم curl لإرسال طلب POST:

```bash
curl -X POST -H "Content-Type: application/json" -d '{"text": "Tell me a joke about cats."}' http://127.0.0.1:8000/generate

يجب أن تتلقى استجابة JSON تحتوي على النص الذي تم إنشاؤه.

الخطوة 5: النشر في بيئة الإنتاج

انشر تطبيق FastAPI الخاص بك في بيئة الإنتاج، على سبيل المثال:

  • Docker: استخدم Docker لحاويات تطبيقك، مما يسهل النشر والإدارة.
  • المنصات السحابية: انشر على منصات سحابية، مثل AWS أو Google Cloud Platform أو Azure. يمكن استخدام Azure Cosmos DB و Azure Functions المذكورتين في النص لإنشاء API بدون خادم. يمكن أيضًا استخدام Modal لنشر تطبيقات FastAPI ذات التوسع التلقائي.
  • الخوادم: انشر على الخوادم الخاصة بك.

أفضل الممارسات

  • استخدم متغيرات البيئة لتخزين المعلومات الحساسة: لا تقم بتضمين معلومات حساسة مثل مفاتيح API في التعليمات البرمجية مباشرةً، ولكن استخدم متغيرات البيئة بدلاً من ذلك.
  • إضافة تسجيل الأحداث: استخدم وحدة تسجيل الأحداث لتسجيل حالة تشغيل API، مما يسهل التصحيح والمراقبة.
  • إضافة معالجة الأخطاء: استخدم كتل try...except لمعالجة الاستثناءات المحتملة وإرجاع معلومات خطأ مناسبة.
  • تحديد المعدل: استخدم محدد المعدل لمنع إساءة استخدام API. يتوفر لدى FastAPI بعض مكتبات تحديد المعدل الجاهزة.
  • التخزين المؤقت: بالنسبة للطلبات المتكررة، يمكنك استخدام التخزين المؤقت لتحسين الأداء.
  • المراقبة: استخدم أدوات المراقبة لمراقبة أداء API وتوافره.

تقنيات متقدمة

  • المعالجة غير المتزامنة: بالنسبة لاستنتاج LLM الذي يستغرق وقتًا طويلاً، استخدم الكلمات الأساسية async و await للمعالجة غير المتزامنة لتجنب حظر الخيط الرئيسي.
  • الاستجابة المتدفقة: يمكن أن يؤدي استخدام الاستجابة المتدفقة (StreamingResponse) إلى إرجاع النص الذي تم إنشاؤه في الوقت الفعلي، مما يحسن تجربة المستخدم.
  • الترابط المتعدد/العمليات المتعددة: بالنسبة لاستنتاج LLM المكثف لوحدة المعالجة المركزية، يمكنك استخدام الترابط المتعدد أو العمليات المتعددة لتحسين الأداء.
  • تسريع GPU: إذا كان نموذج LLM الخاص بك يدعم تسريع GPU، فيمكنك استخدام CUDA أو مكتبات تسريع GPU الأخرى لتحسين سرعة الاستنتاج.

خاتمةFastAPI هو أداة قوية لبناء واجهات برمجة تطبيقات LLM عالية الأداء وجاهزة للإنتاج. من خلال دليل هذه المقالة، يمكنك إعداد واجهة برمجة تطبيقات LLM بسرعة وتوسيعها وتحسينها وفقًا لاحتياجاتك. تذكر أن التعلم والممارسة المستمرين هما مفتاح أن تصبح مطور تطبيقات LLM ممتازًا.

Hornbeam المذكورة في المقالة هي أيضًا خادم ASGI جدير بالملاحظة، يدعي أنه أسرع وأكثر استقرارًا من Gunicorn، ويمكن استخدامه لنشر تطبيقات FastAPI.

Published in Technology

You Might Also Like

كيفية استخدام تقنيات الحوسبة السحابية: دليل كامل لبناء بنية تحتية سحابية أولى لكTechnology

كيفية استخدام تقنيات الحوسبة السحابية: دليل كامل لبناء بنية تحتية سحابية أولى لك

[[HTMLPLACEHOLDER0]] [[HTMLPLACEHOLDER1]] [[HTMLPLACEHOLDER2]] [[HTMLPLACEHOLDER3]] [[HTMLPLACEHOLDER4]] [[HTMLPLACEHOLD...

تحذير! والد Claude Code يقول بصراحة: بعد شهر، لن نحتاج إلى وضع التخطيط، وستختفي لقب مهندس البرمجياتTechnology

تحذير! والد Claude Code يقول بصراحة: بعد شهر، لن نحتاج إلى وضع التخطيط، وستختفي لقب مهندس البرمجيات

تحذير! والد Claude Code يقول بصراحة: بعد شهر، لن نحتاج إلى وضع التخطيط، وستختفي لقب مهندس البرمجيات مؤخراً، أصبحت مقابل...

2026年 Top 10 深度学习资源推荐Technology

2026年 Top 10 深度学习资源推荐

2026年 Top 10 深度学习资源推荐 随着深度学习在各个领域的迅速发展,越来越多的学习资源和工具涌现出来。本文将为您推荐2026年最值得关注的十个深度学习资源,帮助您在这一领域中快速成长。 1. Coursera Deep Learn...

2026年 Top 10 AI 代理:核心卖点解析Technology

2026年 Top 10 AI 代理:核心卖点解析

[[HTMLPLACEHOLDER0]] [[HTMLPLACEHOLDER1]] [[HTMLPLACEHOLDER2]] [[HTMLPLACEHOLDER3]] [[HTMLPLACEHOLDER4]] [[HTMLPLACEHOLD...

أفضل 10 أدوات AI لعام 2026: إطلاق العنان للإمكانات الحقيقية للذكاء الاصطناعيTechnology

أفضل 10 أدوات AI لعام 2026: إطلاق العنان للإمكانات الحقيقية للذكاء الاصطناعي

أفضل 10 أدوات AI لعام 2026: إطلاق العنان للإمكانات الحقيقية للذكاء الاصطناعي في عصر التطور التكنولوجي السريع اليوم، أصبح...

2026年 Top 10 AWS工具和资源推荐Technology

2026年 Top 10 AWS工具和资源推荐

2026年 Top 10 AWS工具和资源推荐 在快速发展的云计算领域,Amazon Web Services (AWS) 一直是领军者,提供丰富的服务和工具,帮助开发者、企业和技术专家在云上有效工作。以下是2026年值得关注的十大AWS工...