بوابة موحدة لاستدعاء واجهات برمجة تطبيقات نماذج اللغات الكبيرة (LLM)، تدعم أكثر من 100 مزود لنماذج اللغات الكبيرة بتنسيق OpenAI.
LiteLLM - بوابة موحدة لاستدعاء واجهات برمجة تطبيقات نماذج اللغة الكبيرة
نظرة عامة على المشروع
LiteLLM عبارة عن حزمة تطوير برامج (SDK) مفتوحة المصدر بلغة Python وخادم وكيل (بوابة LLM)، قادر على استدعاء أكثر من 100 واجهة برمجة تطبيقات لنماذج اللغة الكبيرة بتنسيق OpenAI، بما في ذلك موفري الخدمات الرئيسيين مثل Bedrock وAzure وOpenAI وVertexAI وCohere وAnthropic وSagemaker وHuggingFace وReplicate وGroq وغيرها.
عنوان GitHub: https://github.com/BerriAI/litellm
الوظائف الأساسية
1. تنسيق API موحد
- توحيد تنسيق الإدخال: تحويل مدخلات جميع الموفرين إلى تنسيق موحد
- اتساق تنسيق الإخراج: يمكن دائمًا الحصول على استجابة النص في
['choices'][0]['message']['content']
- دعم نقاط النهاية المتعددة: يدعم نقاط نهاية الإكمال والتضمين وتوليد الصور
2. ضمان التوفر العالي
- منطق إعادة المحاولة/الرجوع: يدعم إعادة المحاولة التلقائية والرجوع بين عمليات النشر المتعددة (مثل Azure/OpenAI)
- وظيفة التوجيه: توجيه ذكي إلى أفضل نموذج متاح
- موازنة التحميل: توزيع حمل الطلبات بين عمليات النشر المتعددة
3. التحكم في التكلفة والأذونات
- إدارة الميزانية: تعيين حدود الميزانية حسب المشروع ومفتاح API والنموذج
- تحديد المعدل: منع الاستخدام المفرط لاستدعاءات API
- تتبع الاستخدام: إحصائيات تفصيلية للاستدعاءات وتحليل التكلفة
الميزات الرئيسية
مثال على استخدام Python SDK
استدعاء أساسي
from litellm import completion
import os
os.environ["OPENAI_API_KEY"] = "your-openai-key"
os.environ["ANTHROPIC_API_KEY"] = "your-anthropic-key"
messages = [{"content": "Hello, how are you?", "role": "user"}]
# OpenAI
response = completion(model="openai/gpt-4o", messages=messages)
# Anthropic
response = completion(model="anthropic/claude-3-sonnet-20240229", messages=messages)
دعم الاستدعاء غير المتزامن
from litellm import acompletion
import asyncio
async def test_get_response():
user_message = "Hello, how are you?"
messages = [{"content": user_message, "role": "user"}]
response = await acompletion(model="openai/gpt-4o", messages=messages)
return response
response = asyncio.run(test_get_response())
استجابة تدفقية
from litellm import completion
response = completion(model="openai/gpt-4o", messages=messages, stream=True)
for part in response:
print(part.choices[0].delta.content or "")
وظيفة الخادم الوكيل
تشغيل سريع
pip install 'litellm[proxy]'
litellm --model huggingface/bigcode/starcoder
# INFO: Proxy running on http://0.0.0.0:4000
استدعاء العميل
import openai
client = openai.OpenAI(
api_key="anything",
base_url="http://0.0.0.0:4000"
)
response = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[{
"role": "user",
"content": "this is a test request, write a short poem"
}]
)
الموفرون المدعومون
يدعم LiteLLM أكثر من 30 موفرًا رئيسيًا لـ LLM، بما في ذلك:
موفرو الخدمات السحابية الرئيسيون
- OpenAI - نماذج سلسلة GPT
- Azure - خدمة Azure OpenAI
- AWS - Bedrock وSageMaker
- Google - Vertex AI وPaLM وGemini
- Anthropic - نماذج سلسلة Claude
منصات مفتوحة المصدر واحترافية
- HuggingFace - استضافة نماذج مفتوحة المصدر
- Replicate - خدمة API للنماذج
- Together AI - استنتاج نماذج مفتوحة المصدر
- Groq - شريحة استنتاج عالية السرعة
- Ollama - تشغيل النماذج محليًا
منصات الميزات الخاصة
- Cohere - معالجة اللغة الطبيعية على مستوى المؤسسات
- AI21 - نماذج Jurassic
- Perplexity - توليد معزز بالبحث
- DeepInfra - استنتاج عالي الأداء
إمكانية الملاحظة والتسجيل
يدعم LiteLLM بشكل مضمن العديد من منصات المراقبة والتسجيل:
import litellm
import os
os.environ["LUNARY_PUBLIC_KEY"] = "your-lunary-public-key"
os.environ["HELICONE_API_KEY"] = "your-helicone-auth-key"
os.environ["LANGFUSE_PUBLIC_KEY"] = "your-langfuse-public-key"
litellm.success_callback = [
"lunary", "mlflow", "langfuse",
"athina", "helicone"
]
response = completion(
model="openai/gpt-4o",
messages=[{"role": "user", "content": "Hi 👋"}]
)
منصات المراقبة المدعومة:
- Lunary - مراقبة تطبيقات LLM
- MLflow - تتبع تجارب تعلم الآلة
- Langfuse - تتبع تطبيقات LLM
- Helicone - مراقبة استدعاءات API
- Athina - تقييم تطبيقات الذكاء الاصطناعي
ميزات على مستوى المؤسسات
نظام إدارة المفاتيح
curl 'http://0.0.0.0:4000/key/generate' \
--header 'Authorization: Bearer sk-1234' \
--header 'Content-Type: application/json' \
--data-raw '{
"models": ["gpt-3.5-turbo", "gpt-4", "claude-2"],
"duration": "20m",
"metadata": {
"user": "user@company.com",
"team": "core-infra"
}
}'
نشر Docker
git clone https://github.com/BerriAI/litellm
cd litellm
echo 'LITELLM_MASTER_KEY="sk-1234"' > .env
echo 'LITELLM_SALT_KEY="your-salt-key"' > .env
docker-compose up
واجهة إدارة الويب
- قم بزيارة
/ui
للحصول على واجهة إدارة مرئية - قم بتعيين ميزانيات وحدود المعدل للمشاريع المتعددة
- مراقبة استخدام API في الوقت الفعلي
- إدارة المستخدمين والفرق
المواصفات الفنية
متطلبات النظام
- إصدار Python: يتطلب Python 3.7+
- متطلبات التبعية:
openai>=1.0.0
(إلزامي v1.0.0+)pydantic>=2.0.0
(إلزامي v1.40.14+)
معايير جودة التعليمات البرمجية
- نمط التعليمات البرمجية: اتبع إرشادات نمط Python من Google
- أداة التنسيق: استخدم Black وisort
- فحص النوع: MyPy وPyright
- فحص التعليمات البرمجية: استخدم Ruff لإجراء فحص lint
ضمان الاستقرار
- إصدار مستقر: استخدم صور Docker التي تحمل علامة
-stable
- اختبار التحميل: إجراء اختبار تحميل لمدة 12 ساعة قبل الإصدار
- التكامل المستمر: عملية CI/CD كاملة
الدعم التجاري
ميزات إصدار المؤسسة
- ميزات أمان متقدمة: تكامل تسجيل الدخول الأحادي (SSO)
- دعم احترافي: دعم مخصص على Discord وSlack
- تكامل مخصص: تكامل مخصص لموفري LLM
- ضمان SLA: اتفاقية مستوى الخدمة
- أولوية الميزات: تطوير الميزات المطلوبة للمؤسسات ذات الأولوية
دعم المجتمع
- مشكلات GitHub: طلبات الميزات وتقارير المشكلات
- مجتمع Discord: تبادل ودعم في الوقت الفعلي
- توثيق كامل: وثائق API مفصلة وبرامج تعليمية
حالات الاستخدام
1. نشر LLM متعدد السحابات
- تجنب إغلاق المورد
- تحقيق استدعاء النموذج عبر الأنظمة الأساسية
- تقليل تكاليف الترحيل
2. تحسين التكلفة
- توجيه ذكي إلى أرخص نموذج متاح
- التحكم في الميزانية ومراقبة الاستخدام
- تحسين استدعاءات API المجمعة
3. بنية عالية التوفر
- تجاوز الفشل التلقائي
- موازنة التحميل
- دعم النشر متعدد المناطق
4. تحسين كفاءة التطوير
- واجهة API موحدة
- تبسيط تبديل النموذج
- دعم SDK غني
التثبيت والبدء السريع
التثبيت الأساسي
pip install litellm
تثبيت الخادم الوكيل
pip install 'litellm[proxy]'
إعداد بيئة التطوير
git clone https://github.com/BerriAI/litellm
cd litellm
python -m venv .venv
source .venv/bin/activate
pip install -e ".[all]"
uvicorn litellm.proxy.proxy_server:app --host localhost --port 4000 --reload
ملخص
تم اعتماد LiteLLM من قبل شركات بارزة مثل Rocket Money وSamsara وLemonade وAdobe. من خلال توفير واجهة API موحدة ووظائف توجيه قوية وميزات إدارة على مستوى المؤسسات، فإنه يبسط بشكل كبير تعقيد إدارة بيئات LLM المتعددة، مما يجعله خيارًا مثاليًا لتطوير تطبيقات الذكاء الاصطناعي الحديثة.