بناء وكلاء الذكاء الاصطناعي التعاونيين مع CrewAI

بناء وكلاء الذكاء الاصطناعي التعاونيين مع CrewAI

عقدة المصدر: 3089434

المُقدّمة

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

وكلاء الذكاء الاصطناعي

أهداف التعلم

  • تعرف على وكلاء الذكاء الاصطناعي.
  • استكشف CrewAI – أداة مفتوحة المصدر لوكلاء البناء.
  • قم ببناء طاقم ذكاء اصطناعي تعاوني لكتابة المحتوى.
  • استكشف حالات الاستخدام الواقعية لوكلاء الذكاء الاصطناعي.

تم نشر هذه المقالة كجزء من مدونة علوم البيانات.

جدول المحتويات

ما هم وكلاء الذكاء الاصطناعي؟

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

Langchain هي الأداة الافتراضية التي تتبادر إلى الذهن عند مناقشة وكلاء الذكاء الاصطناعي. ومع ذلك، فإن تنسيق وكلاء الذكاء الاصطناعي يدويًا لأداء المهام التعاونية سيكون أمرًا صعبًا مع Langchain. هذا هو المكان الذي تظهر فيه CrewAI في الصورة.

ما هو CrewAI؟

CrewAI هو إطار عمل مفتوح المصدر لتنسيق لعب الأدوار ووكلاء الذكاء الاصطناعي المستقلين. فهو يساعد على إنشاء وكلاء الذكاء الاصطناعي التعاونيين لتحقيق الأهداف المعقدة بسهولة. تم تصميم الإطار لتمكين عملاء الذكاء الاصطناعي من تولي الأدوار وتفويض المهام ومشاركة الأهداف، تمامًا مثل طاقم العالم الحقيقي. هذه بعض الميزات الفريدة لـ CrewAI:

  • الوكلاء القائمون على الأدوار: يمكننا تحديد الوكلاء بأدوار وأهداف وقصص درامية محددة لإعطاء المزيد من السياق لـ LLMs قبل إنشاء الإجابات.
  • إدارة المهام: تحديد المهام باستخدام الأدوات وتعيينها ديناميكيًا للوكلاء.
  • التفويض بين الوكلاء: يمكن للوكلاء تفويض المهام إلى وكلاء آخرين للتعاون بشكل فعال.

يوجد أدناه تمثيل للخريطة الذهنية لـ CrewAI.

CrewAI

يتكامل CrewAI بسلاسة مع نظام Langchain البيئي. وهذا يعني أنه يمكننا استخدام أدوات Langchain وعمليات تكامل LLM مع CrewAI. 

بناء طاقم الذكاء الاصطناعي التعاوني

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

سيكون وكيل المحلل مسؤولاً عن تحليل الفكرة وإعداد مخطط شامل لكتابة المحتوى. سيقوم وكيل الكاتب بإعداد مسودة المقال، وفي النهاية سيكون المحرر مسؤولاً عن تنسيق المسودة وتحريرها وتصحيحها. كما نعلم، يتيح لنا CrewAI تعزيز الوكلاء بأدوات مخصصة. سنقوم بتعزيز المحرر بأداة لحفظه على القرص المحلي. ولكن لإنجاز كل هذه الأمور، نحن بحاجة إلى ماجستير في القانون. هنا، سوف نستخدم نموذج جوجل الجوزاء.

دعونا نتعمق في الترميز

كما هو الحال مع أي مشروع بايثون، أنشئ بيئة افتراضية وقم بتثبيت التبعيات. سنحتاج إلى مكتبة Crewai وتنفيذ Langchain جوجل جيناي. يمكنك استخدام LLMs أخرى، مثل نماذج الوصول المفتوح من معاأي مقياسأو نماذج OpenAI.

pip install crewai langchain-google-genai

الخطوة التالية هي تحديد LLM والوكلاء المتعاونين لدينا. قم بإنشاء ملف منفصل باسم agent.py لتعريف الوكلاء.

import os

from crewai import Agent
from langchain.tools import tool
from langchain_google_genai import GoogleGenerativeAI

GOOGLE_API_KEY = "Your Key"
llm = GoogleGenerativeAI(
           model="gemini-pro", 
           google_api_key=GOOGLE_API_KEY
           )

دعونا نحدد أداة حفظ الملفات.

class FileTools:

    @tool("Write File with content")
    def write_file(data: str):
        """Useful to write a file to a given path with a given content. 
           The input to this tool should be a pipe (|) separated text 
           of length two, representing the full path of the file, 
           including the ./lore/, and the written content you want to write to it.
        """
        try:
            path, content = data.split("|")
            path = path.replace("n", "").replace(" ", "").replace("`", "")
            if not path.startswith("./lore"):
                path = f"./lore/{path}"
            with open(path, "w") as f:
                f.write(content)
            return f"File written to {path}."
        except Exception:
            return "Error with the input format for the tool."

تم تزيين طريقة write_file أعلاه بوظيفة أداة Langchain. نظرًا لأن CrewAI يستخدم Langchain أسفل الغطاء، فيجب أن تتوافق الأدوات مع اتفاقيات Langchain. تتوقع الدالة سلسلة واحدة مكونة من جزأين ومسار ملف ومحتوى مفصول بواسطة أنبوب (|). تُستخدم سلاسل مستند الطريقة أيضًا كسياق مضاف للوظيفة. لذا، تأكد من تقديم معلومات مفصلة حول هذه الطريقة.

دعونا نحدد الوكلاء

idea_analyst = Agent(
    role = "Idea Analyst",
    goal = "Comprehensively analyse an idea to prepare blueprints for the article to be written",
    backstory="""You are an experienced content analyst, well versed in analyzing 
    an idea and preparing a blueprint for it.""",
    llm = llm,
    verbose=True
)
writer = Agent(
    role = "Fiction Writer",
    goal = "Write compelling fantasy and sci-fi fictions from the ideas given by the analyst",
    backstory="""A renowned fiction-writer with 2 times NYT 
    a best-selling author in the fiction and sci-fi category.""",
    llm=llm,
    verbose=True
)

editor = Agent(
    role= "Content Editor",
    goal = "Edit contents written by writer",
    backstory="""You are an experienced  editor with years of 
    experience in editing books and stories.""",
    llm = llm,
    tools=[FileTools.write_file],
    verbose=True
)

لدينا ثلاثة عملاء، لكل منهم دور وهدف وخلفية درامية مختلفة. يتم استخدام هذه المعلومات كمطالبة لـ LLM لإعطاء المزيد من السياق. لدى وكيل المحرر أداة كتابة مرتبطة به.

والشيء التالي هو تحديد المهام. لهذا، قم بإنشاء ملف Task.py مختلف.

from textwrap import dedent


class CreateTasks:

    def expand_idea():
        return dedent(""" Analyse the given task {idea}. Prepare comprehensive pin-points
                for accomplishing the given task.
                Make sure the ideas are to the point, coherent, and compelling.
                Make sure you abide by the rules. Don't use any tools.
                
                RULES:
                - Write ideas in bullet points.
                - Avoid adult ideas.
            """)
    def write():
        return dedent("""Write a compelling story in 1200 words based on the blueprint 
        ideas given by the Idea 
              analyst.
              Make sure the contents are coherent, easily communicable, and captivating.
               Don't use any tools.

              Make sure you abide by the rules.

              RULES:
              - Writing must be grammatically correct.
              - Use as little jargon as possible

              """)
    def edit():
        return dedent("""
    Look for any grammatical mistakes, edit, and format if needed.
    Add title and subtitles to the text when needed.
    Do not shorten the content or add comments.
    Create a suitable filename for the content with the .txt extension.
    You MUST use the tool to save it to the path ./lore/(your title.txt).
            """)

المهام هنا هي خطط عمل تفصيلية تتوقع من الوكلاء تنفيذها.

أخيرًا، قم بإنشاء ملف main.py حيث نقوم بتجميع الوكلاء والمهام لإنشاء طاقم وظيفي.

from textwrap import dedent

from crewai import Crew, Task

from agents import editor, idea_analyst, writer
from tasks import CreateTasks


class ContentWritingCrew():
    def __init__(self, idea):
        self.idea = idea
    def __call__(self):
        tasks = self._create_tasks()
        crew = Crew(
            tasks=tasks,
            agents=[idea_analyst, writer, editor],
            verbose=True
            )
        result = crew.kickoff()
        return result

    def _create_tasks(self):
        idea = CreateTasks.expand_idea().format(idea=self.idea)
        expand_idea_task = Task(
            description=idea,
            agent = idea_analyst
        )
        write_task =  Task(
            description=CreateTasks.write(),
            agent=writer
        )
        edit_task = Task(
            description=CreateTasks.edit(),
            agent=editor
        )
        return [expand_idea_task, write_task, edit_task]

if __name__ == "__main__":
    dir = "./lore"
    if not os.path.exists(dir):
        os.mkdir(dir)
    idea = input("idea: ")
    my_crew = ContentWritingCrew(idea=idea)
    result = my_crew()
    print(dedent(result))

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

الوكيل النهائي

هذا هو سجل التنفيذ للوكيل النهائي. أي محرر. يقوم بتحرير المسودة المستلمة من وكيل الكاتب ويستخدم أداة كتابة الملف لحفظ الملف باسم ملف مناسب.

هذا هو سير العمل العام لإنشاء وكلاء الذكاء الاصطناعي التعاونيين باستخدام CrewAI. يمكنك إقران أدوات Langchain الأخرى أو إنشاء أدوات مخصصة ذات مطالبة فعالة لإنجاز مهام أكثر تعقيدًا.

إليك مستودع GitHub للرموز: sunilkumardash9/ContentWritingAgents.

إعادة مستودع التخزين: سونيل كومار كو 17 / التعاونية AIAgent

حالات الاستخدام في العالم الحقيقي

يمكن أن يكون لوكلاء الذكاء الاصطناعي المستقلين الكثير من حالات الاستخدام. من المساعدين الشخصيين إلى المدربين الافتراضيين. فيما يلي بعض حالات استخدام وكلاء الذكاء الاصطناعي.

  • مساعد الذكاء الاصطناعي الشخصي: سيكون المساعدون الشخصيون جزءًا لا يتجزأ منا قريبًا. يوفر المساعد الشبيه بـ Jarvis الذي يعالج جميع بياناتك رؤية واضحة أثناء التنقل ويتعامل مع المهام التافهة بنفسه.
  • مترجمو الكود: يعد مترجم الكود الخاص بـ OpenAI مثالاً رائعًا لوكيل الذكاء الاصطناعي. يمكن للمترجم تشغيل أي برنامج نصي لـ Python وإخراج النتائج استجابة لمطالبة نصية. يمكن القول أن هذا هو الوكيل الأكثر نجاحًا حتى الآن.
  • المدربون الظاهريون: مع تطور تكنولوجيا الذكاء الاصطناعي، يمكننا أن نتوقع معلمين افتراضيين في العديد من المجالات مثل التعليم والتدريب وما إلى ذلك.
  • الوكيل الأول للبرمجيات: هناك حالة استخدام محتملة ضخمة لوكلاء الذكاء الاصطناعي في تطوير برمجيات الوكيل أولاً. بدلاً من التصفح والنقر على الأزرار يدويًا لإنجاز المهام، سيقوم عملاء الذكاء الاصطناعي بإنجازها تلقائيًا بناءً على الأوامر الصوتية.
  • الحوسبة المكانية: مع تطور تقنية AR/VR، سيلعب عملاء الذكاء الاصطناعي دورًا حاسمًا في سد الفجوة بين العالم الافتراضي والعالم الحقيقي.

وفي الختام

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

 الوجبات السريعة الرئيسية

  • يستفيد وكلاء الذكاء الاصطناعي من القدرة الاستدلالية لـ LLMs لاختيار الأدوات المناسبة لإنجاز المهام المعقدة.
  • CrewAI هو إطار عمل مفتوح المصدر لبناء وكلاء الذكاء الاصطناعي التعاونيين.
  • تشتمل الميزة الفريدة لـ CrewAI على الوكلاء القائمين على الأدوار، والتفويض المستقل بين الوكلاء، وإدارة المهام المرنة.
  • يتكامل CrewAI بسلاسة مع نظام Langchain البيئي الحالي. يمكننا استخدام أدوات Langchain وتكاملات LLM مع CrewAI.

الأسئلة المتكررة

س1. ما هي وكلاء الذكاء الاصطناعي؟

ج: وكلاء الذكاء الاصطناعي عبارة عن برامج تتفاعل مع بيئتها وتتخذ القرارات وتعمل على تحقيق هدف نهائي.

س2. ما هو أفضل LLM للاستخدام مع وكلاء الذكاء الاصطناعي؟

ج: يعتمد هذا على حالات الاستخدام والميزانية الخاصة بك. يعد GPT 4 هو الأكثر قدرة ولكنه مكلف، في حين أن نماذج GPT 3.5 وMixtral وGemini Pro أقل كفاءة ولكنها سريعة ورخيصة.

س3. ما هو CrewAI؟

A. CrewAI هو إطار عمل مفتوح المصدر لتنسيق لعب الأدوار ووكلاء الذكاء الاصطناعي المستقلين. فهو يساعد على إنشاء وكلاء الذكاء الاصطناعي التعاونيين لتحقيق الأهداف المعقدة بسهولة.

س 4. ما هو استخدام CrewAI؟

A. يوفر CrewAI فكرة تجريدية عالية المستوى لبناء وكلاء الذكاء الاصطناعي التعاونيين لسير العمل المعقد.

س5. ما هو الفرق بين CrewAi وAutogen؟

ج. في Autogen، يتطلب تنسيق تفاعلات الوكلاء برمجة إضافية، والتي يمكن أن تصبح معقدة ومرهقة مع نمو حجم المهام.

الوسائط الموضحة في هذه المقالة ليست مملوكة لـ Analytics Vidhya ويتم استخدامها وفقًا لتقدير المؤلف.

الطابع الزمني:

اكثر من تحليلات Vidhya