Apidog

منصة تطوير API تعاونية متكاملة

تصميم API

توثيق API

تصحيح أخطاء API

محاكاة API

اختبار API الآلي

كيفية استدعاء واجهات برمجة تطبيقات نماذج اللغات الكبيرة (LLM) باستخدام تنسيق OpenAI مع LiteLLM

Ashley Goolam

Ashley Goolam

Updated on مايو 20, 2025

هل تريد الدردشة مع أكثر من 100 نموذج لغة كبير (LLMs) وكأنها جميعًا واجهة برمجة تطبيقات OpenAI؟ سواء كنت تبني روبوت محادثة، أو تقوم بأتمتة المهام، أو مجرد مهتم بالتكنولوجيا، فإن LiteLLM هو تذكرتك لاستدعاء نماذج اللغات الكبيرة من OpenAI، Anthropic، Ollama، والمزيد، كل ذلك باستخدام نفس تنسيق OpenAI. لقد تعمقت في LiteLLM لتبسيط استدعاءات واجهة برمجة التطبيقات الخاصة بي، ودعني أخبرك - إنه منقذ للحفاظ على الكود نظيفًا ومرنًا. في هذا الدليل للمبتدئين، سأوضح لك كيفية إعداد LiteLLM، واستدعاء نموذج Ollama محلي وGPT-4o من OpenAI، وحتى بث الاستجابات، كل ذلك استنادًا إلى الوثائق الرسمية. هل أنت مستعد لجعل مشاريع الذكاء الاصطناعي الخاصة بك أكثر سلاسة من بعد ظهر مشمس؟ هيا بنا نبدأ!

button

ما هو LiteLLM؟ قوتك الخارقة في واجهة برمجة تطبيقات نماذج اللغات الكبيرة

LiteLLM هي مكتبة Python مفتوحة المصدر وخادم وكيل يتيح لك استدعاء أكثر من 100 واجهة برمجة تطبيقات لنماذج اللغات الكبيرة - مثل OpenAI، Anthropic، Azure، Hugging Face، والنماذج المحلية عبر Ollama - باستخدام تنسيق OpenAI Chat Completions. إنه يوحد المدخلات والمخرجات، ويتعامل مع مفاتيح واجهة برمجة التطبيقات، ويضيف ميزات رائعة مثل البث (streaming)، والتراجع (fallbacks)، وتتبع التكلفة، لذلك لا تحتاج إلى إعادة كتابة الكود لكل مزود. مع أكثر من 22.7 ألف نجمة على GitHub واعتماده من قبل شركات مثل Adobe وLemonade، يعد LiteLLM مفضلاً لدى المطورين. سواء كنت توثق واجهات برمجة التطبيقات (كما هو الحال مع MkDocs) أو تبني تطبيقات الذكاء الاصطناعي، فإن LiteLLM يبسط سير عملك. دعنا نعده ونراه في العمل!

إعداد بيئتك لـ LiteLLM

قبل أن نستدعي نماذج اللغات الكبيرة باستخدام LiteLLM، دعنا نجهز نظامك. هذا الدليل مناسب للمبتدئين، مع شرح كل خطوة لإبقائك على المسار الصحيح.

1. التحقق من المتطلبات الأساسية: ستحتاج إلى هذه الأدوات:

  • Python: الإصدار 3.8 أو أعلى. قم بتشغيل python --version في الطرفية الخاصة بك. إذا كان مفقودًا أو قديمًا جدًا، احصل عليه من python.org. Python يشغل سكربتات LiteLLM.
  • pip: مدير حزم Python، مضمن مع Python 3.4+. تحقق منه باستخدام pip --version. إذا كان غائبًا، قم بتنزيل get-pip.py وقم بتشغيل python get-pip.py.
  • Ollama: للنماذج المحلية. قم بتنزيله من ollama.com وتحقق منه باستخدام ollama --version (على سبيل المثال، 0.1.44). سنستخدمه لاختبار نموذج لغة كبير محلي.

هل ينقصك شيء؟ قم بتثبيته الآن للحفاظ على سلاسة الأمور.

2. إنشاء مجلد مشروع: دعنا نبقى منظمين:

mkdir litellm-api-test
cd litellm-api-test

سيحتوي هذا المجلد على مشروع LiteLLM الخاص بك، وcd يجعلك مستعدًا.

3. إعداد بيئة افتراضية: تجنب تعارض الحزم باستخدام بيئة Python افتراضية:

python -m venv venv

قم بتنشيطها:

  • Mac/Linux: source venv/bin/activate
  • Windows: venv\Scripts\activate

رؤية (venv) في الطرفية تعني أنك في بيئة نظيفة، تعزل تبعيات LiteLLM.

4. الحصول على مفتاح واجهة برمجة تطبيقات OpenAI: لاختبار GPT-4o، قم بالتسجيل في openai.com، انتقل إلى مفاتيح واجهة برمجة التطبيقات، وأنشئ مفتاحًا. احفظه بأمان - ستحتاجه لاحقًا.

openai api key

تثبيت LiteLLM وOllama

الآن، دعنا نثبت LiteLLM ونعد Ollama للنماذج المحلية. هذه خطوة سريعة وتمهد الطريق لاستدعاءات واجهة برمجة التطبيقات الخاصة بنا.

1. تثبيت LiteLLM: في بيئتك الافتراضية المنشطة، قم بتشغيل:

pip install litellm openai

يقوم هذا بتثبيت LiteLLM وحزمة تطوير برامج OpenAI (مطلوبة للتوافق). يقوم بسحب التبعيات مثل pydantic وhttpx.

2. التحقق من LiteLLM: تحقق من التثبيت:

python -c "import litellm; print(litellm.__version__)"

توقع إصدارًا مثل 1.40.14 أو أحدث. إذا فشل، قم بتحديث pip (pip install --upgrade pip).

3. إعداد Ollama: تأكد من أن Ollama يعمل وقم بسحب نموذج خفيف مثل Llama 3 (8B):

ollama pull llama3

يقوم هذا بتنزيل حوالي 4.7 جيجابايت، لذا تناول وجبة خفيفة إذا كان اتصالك بطيئًا. تحقق باستخدام ollama list لرؤية llama3:latest. يستضيف Ollama النماذج المحلية لـ LiteLLM لاستدعائها.

ollama

استدعاء نماذج اللغات الكبيرة باستخدام LiteLLM: أمثلة OpenAI وOllama

دعنا نصل إلى الجزء الممتع - استدعاء نماذج اللغات الكبيرة! سننشئ سكربت Python لاستدعاء GPT-4o من OpenAI ونموذج Llama 3 محلي عبر Ollama، كلاهما باستخدام تنسيق LiteLLM المتوافق مع OpenAI. سنجرب أيضًا البث للحصول على استجابات في الوقت الفعلي.

1. إنشاء سكربت اختبار: في مجلد litellm-api-test الخاص بك، أنشئ ملف test_llm.py بهذا الكود:

from litellm import completion
import os

# Set environment variables
os.environ["OPENAI_API_KEY"] = "your-openai-api-key"  # Replace with your key
os.environ["OLLAMA_API_BASE"] = "http://localhost:11434"  # Default Ollama endpoint

# Messages for the LLM
messages = [{"content": "Write a short poem about the moon", "role": "user"}]

# Call OpenAI GPT-4o
print("Calling GPT-4o...")
gpt_response = completion(
    model="openai/gpt-4o",
    messages=messages,
    max_tokens=50
)
print("GPT-4o Response:", gpt_response.choices[0].message.content)

# Call Ollama Llama 3
print("\nCalling Ollama Llama 3...")
ollama_response = completion(
    model="ollama/llama3",
    messages=messages,
    max_tokens=50,
    api_base="http://localhost:11434"
)
print("Llama 3 Response:", ollama_response.choices[0].message.content)

# Stream Ollama Llama 3 response
print("\nStreaming Ollama Llama 3...")
stream_response = completion(
    model="ollama/llama3",
    messages=messages,
    stream=True,
    api_base="http://localhost:11434"
)
print("Streamed Llama 3 Response:")
for chunk in stream_response:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)
print()  # Newline after streaming

يقوم هذا السكربت بما يلي:

  • يقوم بإعداد مفاتيح واجهة برمجة التطبيقات ونقطة نهاية Ollama.
  • يحدد موجهًا ("اكتب قصيدة قصيرة عن القمر").
  • يستدعي GPT-4o وLlama 3 باستخدام دالة completion في LiteLLM.
  • يبث استجابة Llama 3 للحصول على إخراج في الوقت الفعلي.

2. استبدال مفتاح واجهة برمجة التطبيقات: قم بتحديث os.environ["OPENAI_API_KEY"] بمفتاح OpenAI الفعلي الخاص بك. إذا لم يكن لديك واحد، تخطى استدعاء GPT-4o وركز على Ollama.

3. التأكد من تشغيل Ollama: ابدأ Ollama في طرفية منفصلة:

ollama serve

يقوم هذا بتشغيل Ollama على http://localhost:11434. أبقِ الطرفية مفتوحة لاستدعاءات Llama 3.

4. تشغيل السكربت: في بيئتك الافتراضية، قم بتنفيذ:

python test_llm.py
  • عندما قمت بتشغيل هذا، أعاد GPT-4o قصيدة مصقولة مثل:
>> The moon’s soft glow, a silver dream, lights paths where quiet shadows gleam.
  • أعطى Llama 3 نسخة أبسط ولكنها ساحرة، مثل:
>> Moon so bright in the night sky, glowing soft as clouds float by.

تمت طباعة الاستجابة المبثوثة كلمة بكلمة، مما أعطى شعورًا بأن نموذج اللغة الكبير كان يكتب مباشرة. إذا فشل، تحقق من أن Ollama يعمل، وأن مفتاح OpenAI الخاص بك صالح، أو أن المنفذ 11434 مفتوح. سجلات التصحيح موجودة في ~/.litellm/logs.

هل تواجه مشكلات مع Ollama؟ تعلم المزيد عن Ollama وكيفية البدء باستخدامه

إضافة قابلية المراقبة باستخدام استدعاءات LiteLLM (Callbacks)

هل تريد تتبع استدعاءات نماذج اللغات الكبيرة الخاصة بك كالمحترفين؟ يدعم LiteLLM استدعاءات لتسجيل المدخلات والمخرجات والتكاليف لأدوات مثل Langfuse أو MLflow. دعنا نضيف استدعاء بسيطًا لتسجيل التكاليف.

تحديث السكربت: قم بتعديل test_llm.py لتضمين استدعاء تتبع التكلفة:

from litellm import completion
import os

# Callback function to track cost
def track_cost_callback(kwargs, completion_response, start_time, end_time):
    cost = kwargs.get("response_cost", 0)
    print(f"Response cost: ${cost:.4f}")

# Set callback
import litellm
litellm.success_callback = [track_cost_callback]

# Rest of the script (same as above)
os.environ["OPENAI_API_KEY"] = "your-openai-api-key"
os.environ["OLLAMA_API_BASE"] = "http://localhost:11434"
messages = [{"role": "user", "content": "Write a short poem about the moon"}]
print("Calling GPT-4o...")
gpt_response = completion(model="openai/gpt-4o", messages=messages, max_tokens=50)
print("GPT-4o Response:", gpt_response.choices[0].message.content)
# ... (Ollama and streaming calls unchanged)

يقوم هذا بتسجيل تكلفة كل استدعاء (على سبيل المثال، "تكلفة الاستجابة: 0.0025 دولار" لـ GPT-4o). استدعاءات Ollama مجانية، لذا تكلفتها هي 0 دولار.

التشغيل مرة أخرى: نفّذ python test_llm.py. سترى سجلات التكلفة جنبًا إلى جنب مع الاستجابات، مما يساعدك على مراقبة النفقات لنماذج اللغات الكبيرة المستندة إلى السحابة.

توثيق واجهات برمجة التطبيقات الخاصة بك باستخدام APIdog

نظرًا لأنك تعمل مع واجهات برمجة تطبيقات نماذج اللغات الكبيرة، فمن المحتمل أن ترغب في توثيقها بوضوح لفريقك أو للمستخدمين. أوصي بشدة بالاطلاع على APIdog. وثائق APIdog أداة رائعة لهذا الغرض! تقدم منصة أنيقة وتفاعلية لتصميم واجهات برمجة التطبيقات واختبارها وتوثيقها، مع ميزات مثل ساحات اختبار واجهة برمجة التطبيقات وخيارات الاستضافة الذاتية. يمكن أن يؤدي دمج استدعاءات واجهة برمجة التطبيقات الخاصة بـ LiteLLM مع الوثائق المصقولة لـ APIdog إلى نقل مشروعك إلى المستوى التالي - جربها!

button
apidog documentation

انطباعاتي عن LiteLLM

بعد اللعب بـ LiteLLM، إليك ما أعجبني:

  • تنسيق موحد: هيكل كود واحد لـ OpenAI وOllama وما بعدها - لا مزيد من الصداع الخاص بواجهات برمجة التطبيقات.
  • القوة المحلية: يتيح لك تكامل Ollama تشغيل النماذج دون اتصال بالإنترنت، وهو مثالي للخصوصية أو المشاريع ذات الميزانية المنخفضة.
  • متعة البث: الاستجابات في الوقت الفعلي تجعل التطبيقات تبدو حية، مثل الدردشة مع صديق.
  • ضجة مجتمعية: مع أكثر من 18 ألف نجمة على GitHub، يعد LiteLLM مفضلاً لدى المطورين.

التحديات؟ قد يكون الإعداد صعبًا إذا لم يتم تكوين Ollama أو مفاتيح واجهة برمجة التطبيقات بشكل صحيح، ولكن الوثائق قوية.

نصائح احترافية لنجاح LiteLLM

  • التصحيح: قم بتمكين تسجيل الدخول المفصل (verbose logging) باستخدام litellm.set_verbose = True لرؤية الطلبات والاستجابات الأولية.
  • المزيد من النماذج: جرب Claude من Anthropic أو Azure OpenAI عن طريق إضافة مفاتيح واجهة برمجة التطبيقات الخاصة بهم والنماذج (على سبيل المثال، anthropic/claude-3-sonnet-20240229).
  • الاستدعاءات غير المتزامنة (Async Calls): استخدم litellm.acompletion للاستدعاءات غير المعيقة في تطبيقات FastAPI.
  • خادم وكيل: قم بتشغيل LiteLLM كوكيل (`litellm --model gpt-3.5-turbo`) لتشارك تطبيقات متعددة نقطة نهاية واحدة.
  • المجتمع: انضم إلى LiteLLM Discord أو مناقشات GitHub للحصول على النصائح والتحديثات.
هل أنت جديد في التوثيق؟ سيساعدك هذا الدليل على البدء

خاتمة: رحلتك مع LiteLLM تبدأ هنا

لقد فتحت للتو قوة LiteLLM لاستدعاء نماذج اللغات الكبيرة كالمحترفين، من GPT-4o من OpenAI إلى Llama 3 المحلي، كل ذلك في تنسيق واحد نظيف! سواء كنت تبني تطبيقات ذكاء اصطناعي أو تجرب كـمُبرمج فضولي، فإن LiteLLM يجعل من السهل تبديل النماذج، وبث الاستجابات، وتتبع التكاليف. جرب موجهات جديدة، أضف المزيد من المزودين، أو قم بإعداد خادم وكيل للمشاريع الأكبر. شارك إنجازاتك مع LiteLLM على GitHub الخاص بـ LiteLLM - أنا متحمس لرؤية ما ستنشئه! ولا تنسَ الاطلاع على APIdog لتوثيق واجهات برمجة التطبيقات الخاصة بك. برمجة سعيدة!