تخطَّ إلى المحتوى

استخدام CrewAI بدون LiteLLM

يدعم CrewAI مسارين للاتصال بمزودي LLM:

  1. التكاملات الأصلية — اتصالات SDK مباشرة مع OpenAI وAnthropic وGoogle Gemini وAzure OpenAI وAWS Bedrock
  2. LiteLLM كاحتياط — طبقة ترجمة تدعم أكثر من 100 مزود إضافي

يشرح هذا الدليل كيفية استخدام CrewAI حصرياً مع التكاملات الأصلية للمزودين، مع إزالة أي اعتمادية على LiteLLM.

  • تقليل سطح الاعتماديات — حزم أقل تعني مخاطر أقل محتملة في سلسلة التوريد
  • أداء أفضل — تتواصل حزم SDK الأصلية مباشرة مع واجهات برمجة تطبيقات المزودين، مما يلغي طبقة الترجمة
  • تصحيح أخطاء أبسط — طبقة تجريد واحدة أقل بين كودك والمزود
  • حجم تثبيت أصغر — يجلب LiteLLM العديد من الاعتماديات العابرة

المزودون الأصليون (لا يحتاجون LiteLLM)

Section titled “المزودون الأصليون (لا يحتاجون LiteLLM)”

هؤلاء المزودون يستخدمون حزم SDK الخاصة بهم ويعملون بدون تثبيت LiteLLM:

OpenAI

GPT-4o، GPT-4o-mini، o1، o3-mini، والمزيد.

Terminal window
uv add "crewai[openai]"

Anthropic

Claude Sonnet، Claude Haiku، والمزيد.

Terminal window
uv add "crewai[anthropic]"

Google Gemini

Gemini 2.0 Flash، Gemini 2.0 Pro، والمزيد.

Terminal window
uv add "crewai[gemini]"

Azure OpenAI

نماذج OpenAI المستضافة على Azure.

Terminal window
uv add "crewai[azure]"

AWS Bedrock

Claude، Llama، Titan، والمزيد عبر AWS.

Terminal window
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 مثبتاً”
Terminal window
# Using pip
pip show litellm
# Using uv
uv pip show litellm

إذا أرجع الأمر معلومات الحزمة، فإن LiteLLM مثبت في بيئتك.

انظر إلى ملف pyproject.toml الخاص بك بحثاً عن crewai[litellm]:

# If you see this, you have LiteLLM as a dependency
dependencies = [
"crewai[litellm]>=0.100.0", # ← Uses LiteLLM
]
# Change to a native provider extra instead
dependencies = [
"crewai[openai]>=0.100.0", # ← Native, no LiteLLM
]

الخطوة 1: حدد مزودك الحالي

Section titled “الخطوة 1: حدد مزودك الحالي”

ابحث عن جميع استدعاءات LLM() وسلاسل النماذج في كودك:

Terminal window
# Search your codebase for LLM model strings
grep -r "LLM(" --include="*.py" .
grep -r "llm=" --include="*.yaml" .
grep -r "llm:" --include="*.yaml" .

الخطوة 2: انتقل إلى مزود أصلي

Section titled “الخطوة 2: انتقل إلى مزود أصلي”
الانتقال إلى OpenAI
from crewai import LLM
# Before (LiteLLM):
# llm = LLM(model="groq/llama-3.1-70b")
# After (Native):
llm = LLM(model="openai/gpt-4o")
Terminal window
# Install
uv add "crewai[openai]"
# Set your API key
export OPENAI_API_KEY="sk-..."
الانتقال إلى Anthropic
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")
Terminal window
# Install
uv add "crewai[anthropic]"
# Set your API key
export ANTHROPIC_API_KEY="sk-ant-..."
الانتقال إلى Gemini
from crewai import LLM
# Before (LiteLLM):
# llm = LLM(model="mistral/mistral-large-latest")
# After (Native):
llm = LLM(model="gemini/gemini-2.0-flash")
Terminal window
# Install
uv add "crewai[gemini]"
# Set your API key
export GEMINI_API_KEY="..."
الانتقال إلى Azure OpenAI
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"
)
Terminal window
# Install
uv add "crewai[azure]"
الانتقال إلى AWS Bedrock
from crewai import LLM
# After (Native):
llm = LLM(
model="bedrock/anthropic.claude-3-5-sonnet-20241022-v2:0",
aws_region_name="us-east-1"
)
Terminal window
# Install
uv add "crewai[bedrock]"
# Configure AWS credentials
export 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

بمجرد انتقال جميع مراجع النماذج الخاصة بك:

Terminal window
# Remove litellm from your project
uv remove litellm
# Or if using pip
pip uninstall litellm
# Update your pyproject.toml: change crewai[litellm] to your provider extra
# e.g., crewai[openai], crewai[anthropic], crewai[gemini]

شغّل مشروعك وتأكد من أن كل شيء يعمل:

Terminal window
# Run your crew
crewai run
# Or run your tests
uv 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 & affordable
llm = 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 quality
llm = 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"
)
هل أفقد أي وظائف بإزالة LiteLLM؟

لا، إذا كنت تستخدم أحد المزودين الخمسة المدعومين أصلياً (OpenAI، Anthropic، Gemini، Azure، Bedrock). تدعم هذه التكاملات الأصلية جميع ميزات CrewAI بما في ذلك البث واستدعاء الأدوات والمخرجات المنظمة والمزيد. ستفقد فقط الوصول إلى المزودين المتاحين حصرياً عبر LiteLLM (مثل Groq وTogether AI وMistral كمزودين من الدرجة الأولى).

هل يمكنني استخدام عدة مزودين أصليين في نفس الوقت؟

نعم. ثبّت إضافات متعددة واستخدم مزودين مختلفين لوكلاء مختلفين:

Terminal window
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 وغيرها.