استخدام CrewAI بدون LiteLLM
نظرة عامة
Section titled “نظرة عامة”يدعم CrewAI مسارين للاتصال بمزودي LLM:
- التكاملات الأصلية — اتصالات SDK مباشرة مع OpenAI وAnthropic وGoogle Gemini وAzure OpenAI وAWS Bedrock
- LiteLLM كاحتياط — طبقة ترجمة تدعم أكثر من 100 مزود إضافي
يشرح هذا الدليل كيفية استخدام CrewAI حصرياً مع التكاملات الأصلية للمزودين، مع إزالة أي اعتمادية على LiteLLM.
لماذا إزالة LiteLLM؟
Section titled “لماذا إزالة LiteLLM؟”- تقليل سطح الاعتماديات — حزم أقل تعني مخاطر أقل محتملة في سلسلة التوريد
- أداء أفضل — تتواصل حزم SDK الأصلية مباشرة مع واجهات برمجة تطبيقات المزودين، مما يلغي طبقة الترجمة
- تصحيح أخطاء أبسط — طبقة تجريد واحدة أقل بين كودك والمزود
- حجم تثبيت أصغر — يجلب LiteLLM العديد من الاعتماديات العابرة
المزودون الأصليون (لا يحتاجون LiteLLM)
Section titled “المزودون الأصليون (لا يحتاجون LiteLLM)”هؤلاء المزودون يستخدمون حزم SDK الخاصة بهم ويعملون بدون تثبيت LiteLLM:
OpenAI
GPT-4o، GPT-4o-mini، o1، o3-mini، والمزيد.
uv add "crewai[openai]"Anthropic
Claude Sonnet، Claude Haiku، والمزيد.
uv add "crewai[anthropic]"Google Gemini
Gemini 2.0 Flash، Gemini 2.0 Pro، والمزيد.
uv add "crewai[gemini]"Azure OpenAI
نماذج OpenAI المستضافة على Azure.
uv add "crewai[azure]"AWS Bedrock
Claude، Llama، Titan، والمزيد عبر AWS.
uv add "crewai[bedrock]"كيفية التحقق مما إذا كنت تستخدم LiteLLM
Section titled “كيفية التحقق مما إذا كنت تستخدم LiteLLM”تحقق من سلاسل النماذج الخاصة بك
Section titled “تحقق من سلاسل النماذج الخاصة بك”إذا كان كودك يستخدم بادئات النماذج هذه، فأنت تمرر عبر LiteLLM:
| البادئة | المزود | يستخدم LiteLLM؟ |
|---|---|---|
ollama/ | Ollama | ✅ نعم |
groq/ | Groq | ✅ نعم |
together_ai/ | Together AI | ✅ نعم |
mistral/ | Mistral | ✅ نعم |
cohere/ | Cohere | ✅ نعم |
huggingface/ | Hugging Face | ✅ نعم |
openai/ | OpenAI | ❌ أصلي |
anthropic/ | Anthropic | ❌ أصلي |
gemini/ | Google Gemini | ❌ أصلي |
azure/ | Azure OpenAI | ❌ أصلي |
bedrock/ | AWS Bedrock | ❌ أصلي |
تحقق مما إذا كان LiteLLM مثبتاً
Section titled “تحقق مما إذا كان LiteLLM مثبتاً”# Using pippip show litellm
# Using uvuv pip show litellmإذا أرجع الأمر معلومات الحزمة، فإن LiteLLM مثبت في بيئتك.
تحقق من اعتمادياتك
Section titled “تحقق من اعتمادياتك”انظر إلى ملف pyproject.toml الخاص بك بحثاً عن crewai[litellm]:
# If you see this, you have LiteLLM as a dependencydependencies = [ "crewai[litellm]>=0.100.0", # ← Uses LiteLLM]
# Change to a native provider extra insteaddependencies = [ "crewai[openai]>=0.100.0", # ← Native, no LiteLLM]دليل الانتقال
Section titled “دليل الانتقال”الخطوة 1: حدد مزودك الحالي
Section titled “الخطوة 1: حدد مزودك الحالي”ابحث عن جميع استدعاءات LLM() وسلاسل النماذج في كودك:
# Search your codebase for LLM model stringsgrep -r "LLM(" --include="*.py" .grep -r "llm=" --include="*.yaml" .grep -r "llm:" --include="*.yaml" .الخطوة 2: انتقل إلى مزود أصلي
Section titled “الخطوة 2: انتقل إلى مزود أصلي”from crewai import LLM
# Before (LiteLLM):# llm = LLM(model="groq/llama-3.1-70b")
# After (Native):llm = LLM(model="openai/gpt-4o")# Installuv add "crewai[openai]"
# Set your API keyexport OPENAI_API_KEY="sk-..."from crewai import LLM
# Before (LiteLLM):# llm = LLM(model="together_ai/meta-llama/Meta-Llama-3.1-70B")
# After (Native):llm = LLM(model="anthropic/claude-sonnet-4-20250514")# Installuv add "crewai[anthropic]"
# Set your API keyexport ANTHROPIC_API_KEY="sk-ant-..."from crewai import LLM
# Before (LiteLLM):# llm = LLM(model="mistral/mistral-large-latest")
# After (Native):llm = LLM(model="gemini/gemini-2.0-flash")# Installuv add "crewai[gemini]"
# Set your API keyexport GEMINI_API_KEY="..."from crewai import LLM
# After (Native):llm = LLM( model="azure/your-deployment-name", api_key="your-azure-api-key", base_url="https://your-resource.openai.azure.com", api_version="2024-06-01")# Installuv add "crewai[azure]"from crewai import LLM
# After (Native):llm = LLM( model="bedrock/anthropic.claude-3-5-sonnet-20241022-v2:0", aws_region_name="us-east-1")# Installuv add "crewai[bedrock]"
# Configure AWS credentialsexport AWS_ACCESS_KEY_ID="..."export AWS_SECRET_ACCESS_KEY="..."export AWS_DEFAULT_REGION="us-east-1"الخطوة 3: الاحتفاظ بـ Ollama بدون LiteLLM
Section titled “الخطوة 3: الاحتفاظ بـ Ollama بدون LiteLLM”إذا كنت تستخدم Ollama وتريد الاستمرار في استخدامه، يمكنك الاتصال عبر واجهة برمجة تطبيقات Ollama المتوافقة مع OpenAI:
from crewai import LLM
# Before (LiteLLM):# llm = LLM(model="ollama/llama3")
# After (OpenAI-compatible mode, no LiteLLM needed):llm = LLM( model="openai/llama3", base_url="http://localhost:11434/v1", api_key="ollama" # Ollama doesn't require a real API key)الخطوة 4: تحديث إعدادات YAML
Section titled “الخطوة 4: تحديث إعدادات YAML”# Before (LiteLLM providers):researcher: role: Research Specialist goal: Conduct research backstory: A dedicated researcher llm: groq/llama-3.1-70b # ← LiteLLM
# After (Native provider):researcher: role: Research Specialist goal: Conduct research backstory: A dedicated researcher llm: openai/gpt-4o # ← Nativeالخطوة 5: إزالة LiteLLM
Section titled “الخطوة 5: إزالة LiteLLM”بمجرد انتقال جميع مراجع النماذج الخاصة بك:
# Remove litellm from your projectuv remove litellm
# Or if using pippip uninstall litellm
# Update your pyproject.toml: change crewai[litellm] to your provider extra# e.g., crewai[openai], crewai[anthropic], crewai[gemini]الخطوة 6: التحقق
Section titled “الخطوة 6: التحقق”شغّل مشروعك وتأكد من أن كل شيء يعمل:
# Run your crewcrewai run
# Or run your testsuv run pytestمرجع سريع: خريطة سلاسل النماذج
Section titled “مرجع سريع: خريطة سلاسل النماذج”فيما يلي مسارات الانتقال الشائعة من المزودين المعتمدين على LiteLLM إلى المزودين الأصليين:
from crewai import LLM
# ─── LiteLLM providers → Native alternatives ────────────────────
# Groq → OpenAI or Anthropic# llm = LLM(model="groq/llama-3.1-70b")llm = LLM(model="openai/gpt-4o-mini") # Fast & affordablellm = LLM(model="anthropic/claude-haiku-3-5") # Fast & affordable
# Together AI → OpenAI or Gemini# llm = LLM(model="together_ai/meta-llama/Meta-Llama-3.1-70B")llm = LLM(model="openai/gpt-4o") # High qualityllm = LLM(model="gemini/gemini-2.0-flash") # Fast & capable
# Mistral → Anthropic or OpenAI# llm = LLM(model="mistral/mistral-large-latest")llm = LLM(model="anthropic/claude-sonnet-4-20250514") # High quality
# Ollama → OpenAI-compatible (keep using local models)# llm = LLM(model="ollama/llama3")llm = LLM( model="openai/llama3", base_url="http://localhost:11434/v1", api_key="ollama")الأسئلة الشائعة
Section titled “الأسئلة الشائعة”هل أفقد أي وظائف بإزالة LiteLLM؟
لا، إذا كنت تستخدم أحد المزودين الخمسة المدعومين أصلياً (OpenAI، Anthropic، Gemini، Azure، Bedrock). تدعم هذه التكاملات الأصلية جميع ميزات CrewAI بما في ذلك البث واستدعاء الأدوات والمخرجات المنظمة والمزيد. ستفقد فقط الوصول إلى المزودين المتاحين حصرياً عبر LiteLLM (مثل Groq وTogether AI وMistral كمزودين من الدرجة الأولى).
هل يمكنني استخدام عدة مزودين أصليين في نفس الوقت؟
نعم. ثبّت إضافات متعددة واستخدم مزودين مختلفين لوكلاء مختلفين:
uv add "crewai[openai,anthropic,gemini]"researcher = Agent(llm="openai/gpt-4o", ...)writer = Agent(llm="anthropic/claude-sonnet-4-20250514", ...)هل LiteLLM آمن للاستخدام الآن؟
بغض النظر عن حالة العزل، فإن تقليل سطح اعتمادياتك يُعد ممارسة أمنية جيدة. إذا كنت تحتاج فقط مزودين يدعمهم CrewAI أصلياً، فلا يوجد سبب لإبقاء LiteLLM مثبتاً.
ماذا عن متغيرات البيئة مثل OPENAI_API_KEY؟
يستخدم المزودون الأصليون نفس متغيرات البيئة التي اعتدت عليها. لا حاجة لتغييرات على OPENAI_API_KEY أو ANTHROPIC_API_KEY أو GEMINI_API_KEY وغيرها.
موارد ذات صلة
Section titled “موارد ذات صلة”- اتصالات LLM — الدليل الكامل لربط CrewAI مع أي LLM
- مفاهيم LLM — فهم نماذج اللغة الكبيرة في CrewAI
- دليل اختيار LLM — اختيار النموذج المناسب لحالة استخدامك