CrewAICrewAI

الفصل الخامس : من سلسلة ” الذكاء الصناعي التعاوني CrewAI – دليل المطور العربي لبناء وكلاء ذكيين يعملون معًا ” .

تعرف على كيفية دمج مكتبة CrewAI مع نماذج OpenAI وLangChain وOllama لتشغيل الوكلاء (Agents) بذكاء كامل، سواء عبر الإنترنت أو بشكل محلي بدون اتصال في بايثون.


مقدمة

حتى الآن، تعرّفنا على:

  • كيف ننشئ الوكلاء (Agents).
  • وكيف نكتب المهام (Tasks).
  • وكيف نجمعهم داخل طاقم (Crew).

لكن كل هذا لا يكتمل بدون “العقل” الذي يفكر وينفذ الأوامر فعليًا.
هذا العقل هو النموذج اللغوي LLM (Large Language Model).

مكتبة CrewAI لا تحتوي على نموذج ذكاء صناعي بداخلها،
بل تعمل كمنصة تنظيمية تتكامل مع مزودين خارجيين مثل OpenAI وOllama وLangChain لتشغيل الوكلاء.


أولاً: التكامل مع OpenAI

الإعداد

قبل كل شيء، تحتاج إلى تثبيت مكتبة OpenAI الرسمية:

pip install openai

ثم عليك إضافة مفتاح الـ API إلى متغيرات البيئة:

في Windows:

setx OPENAI_API_KEY "sk-xxxxxxxxxxxxxxxx"

في Linux/macOS:

export OPENAI_API_KEY="sk-xxxxxxxxxxxxxxxx"

إنشاء وكيل يستخدم نموذج OpenAI

from crewai import Agent, Task, Crew
from langchain.chat_models import ChatOpenAI

llm = ChatOpenAI(model="gpt-4o-mini")  # يمكنك اختيار أي نموذج متاح

researcher = Agent(
    role="AI Researcher",
    goal="جمع وتحليل معلومات حول الذكاء الصناعي التعاوني CrewAI",
    backstory="باحث تقني يستخدم OpenAI لاستخراج المعرفة الدقيقة.",
    llm=llm
)

task = Task(description="اشرح فكرة CrewAI باختصار للمطورين الجدد.", agent=researcher)

crew = Crew(agents=[researcher], tasks=[task])
result = crew.run()
print(result)

هنا يعمل وكيلك عبر نموذج OpenAI الذي يتكفل بتوليد الاستجابات والتحليل.


ثانيًا: التكامل مع LangChain

مكتبة LangChain تُستخدم كطبقة وسيطة بين CrewAI ومقدمي النماذج المختلفة.
ميزة LangChain أنها تتيح لك:

  • اختيار أي نموذج (OpenAI, Anthropic, Gemini…).
  • إضافة أدوات مثل الذاكرة أو البحث أو قواعد المعرفة.

تثبيت LangChain:

pip install langchain

مثال: استخدام LangChain مع CrewAI

from crewai import Agent, Task, Crew
from langchain.chat_models import ChatOpenAI

# LangChain يوفر واجهة موحدة للنماذج
llm = ChatOpenAI(model="gpt-4o")

developer = Agent(
    role="Developer Assistant",
    goal="مساعدة المطورين على كتابة أكواد CrewAI.",
    backstory="مساعد ذكي يعتمد على LangChain لتحليل الأكواد واقتراح التحسينات.",
    llm=llm
)

task = Task(description="اكتب مثالاً على إنشاء طاقم CrewAI بثلاثة وكلاء.", agent=developer)
crew = Crew(agents=[developer], tasks=[task])
print(crew.run())

ميزة هذا التكامل أنك تستطيع تبديل النموذج بسهولة دون تغيير الكود الأساسي:
فقط استبدل ChatOpenAI بـ ChatAnthropic أو ChatGoogleGenerativeAI — وسيعمل النظام بنفس الطريقة.


ثالثًا: التكامل مع Ollama (النماذج المحلية)

ما هو Ollama؟

Ollama هو محرك تشغيل للنماذج اللغوية محليًا على جهازك،
يسمح لك بتشغيل نماذج مثل Llama 3 أو Mistral أو Phi-3 دون إنترنت.

هذا مثالي عندما:

  • تريد الخصوصية الكاملة (لا تُرسل بياناتك إلى الإنترنت).
  • أو عند غياب اتصال إنترنت دائم.

التثبيت على كل نظام

على Windows

قم بزيارة الموقع الرسمي: https://ollama.com/download
ونزّل المثبّت المناسب، ثم شغّل:

ollama run llama3

على Linux

curl -fsSL https://ollama.com/install.sh | sh
ollama run llama3

على macOS

brew install ollama
ollama run llama3

استخدام Ollama داخل CrewAI

from crewai import Agent, Task, Crew
from langchain.llms import Ollama

local_model = Ollama(model="llama3")

offline_agent = Agent(
    role="Offline Researcher",
    goal="تحليل المفاهيم دون الحاجة للاتصال بالإنترنت.",
    backstory="باحث يعتمد على نماذج محلية عبر Ollama.",
    llm=local_model
)

task = Task(description="اشرح مفهوم CrewAI باختصار.", agent=offline_agent)
crew = Crew(agents=[offline_agent], tasks=[task])
print(crew.run())

هنا يتم تشغيل كل شيء محليًا 100٪ — لا حاجة لأي API Key ولا اتصال بالإنترنت.


مقارنة بين OpenAI وOllama

العنصرOpenAIOllama
التشغيلسحابي (Cloud)محلي (Local)
الاتصال بالإنترنتمطلوبغير مطلوب
الخصوصيةيعتمد على مزود الخدمةمحفوظة تمامًا على الجهاز
النماذج المتاحةGPT-4, GPT-3.5, GPT-4o…Llama, Mistral, Phi, Gemma…
الأداءأسرع في التحليل المعقدأسرع في المهام البسيطة
التكلفةمدفوعة حسب الاستخداممجانية بعد التنزيل

الجمع بين أكثر من مزود في نفس النظام

يمكنك استخدام أكثر من مزود نموذج داخل طاقم واحد!
مثلاً: وكيل يستخدم OpenAI وآخر يعمل عبر Ollama:

from crewai import Agent, Task, Crew
from langchain.chat_models import ChatOpenAI
from langchain.llms import Ollama

openai_llm = ChatOpenAI(model="gpt-4o")
ollama_llm = Ollama(model="llama3")

analyzer = Agent(role="Analyzer", goal="تحليل النصوص", backstory="يستخدم OpenAI للتحليل العميق.", llm=openai_llm)
summarizer = Agent(role="Summarizer", goal="تلخيص النتائج.", backstory="يعمل على Llama3 محليًا.", llm=ollama_llm)

task1 = Task(description="حلل الاتجاهات الحديثة في الذكاء الصناعي.", agent=analyzer)
task2 = Task(description="لخّص النتائج بأسلوب موجز.", agent=summarizer)

crew = Crew(agents=[analyzer, summarizer], tasks=[task1, task2])
print(crew.run())

💡 بهذا الشكل، يمكنك الدمج بين دقة النماذج السحابية وسرعة النماذج المحلية،
لبناء بيئة ذكاء صناعي هجينة قوية وفعالة.


نصائح عملية للتكامل السلس

  1. احتفظ بمفاتيح API في متغيرات البيئة، لا تضعها داخل الكود.
  2. استخدم LangChain كطبقة موحدة لإدارة تعدد النماذج بسهولة.
  3. استخدم Ollama للنماذج التجريبية المحلية أو عند غياب الإنترنت.
  4. جرب الجمع بين مزودين أو أكثر حسب نوع المهمة (تحليل – تلخيص – إنشاء).
  5. استخدم virtualenv أو conda لعزل بيئة العمل وتنظيم الحزم.

الخلاصة

تكمن قوة CrewAI في قدرتها على الاندماج مع أنظمة النماذج اللغوية الكبرى.
فهي لا تُعيد اختراع العجلة، بل تبني فوقها:
تستخدم OpenAI للذكاء السحابي،
وLangChain لإدارة المنطق والذاكرة،
وOllama لتشغيل النماذج محليًا دون قيود.

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


في الفصل السادس والأخير سنتناول:
نصائح وأفكار متقدمة لبناء أنظمة تعاونية احترافية باستخدام CrewAI،
مثل بناء “مساعد برمجي متكامل” أو “نظام كتابة محتوى ذكي”.

By احمد علي

مطور تطبيقات هواتف ذكية باستخدام Flutter، وصانع محتوى تقني يكتب عن الذكاء الاصطناعي والبرمجة وتطورات التكنولوجيا الحديثة. أسعى لتبسيط الأفكار المعقدة ومشاركة خبرتي مع المهتمين بالمجال.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *