CrewAI یک چارچوب متنباز برای سازماندهی عوامل هوش مصنوعی خودگردان در یک تیم است. این امکان را به شما میدهد تا یک "تیم" هوش مصنوعی ایجاد کنید که در آن هر عامل نقش و هدف خاصی داشته باشد و برای انجام وظایف پیچیده با هم کار کنند. در یک سیستم CrewAI، چندین عامل میتوانند با یکدیگر همکاری کنند، اطلاعات را به اشتراک بگذارند و اقدامات خود را در جهت یک هدف مشترک هماهنگ کنند. این امر امکان تقسیم یک مسئله به زیروظایف و واگذاری هر بخش به عوامل متخصص را فراهم میکند، درست مانند یک تیم انسانی با تخصصهای مختلف.
در این آموزش، یک مورد استفاده از چندین عامل هوش مصنوعی که با استفاده از CrewAI با هم کار میکنند را نشان خواهیم داد. سناریوی مثال ما شامل خلاصهسازی یک مقاله با استفاده از سه عامل با نقشهای متمایز خواهد بود:
- عامل دستیار تحقیق - مقاله را میخواند و نکات یا حقایق کلیدی را استخراج میکند.
- عامل خلاصهساز - نکات کلیدی را میگیرد و مقاله را به طور مختصر خلاصه میکند.
- عامل نویسنده - خلاصه را بررسی میکند و آن را در یک خروجی نهایی ساختاریافته قالببندی میکند (به عنوان مثال، افزودن عنوان یا نتیجهگیری).
این گردش کار مشارکتی تقلیدی از نحوه کار یک تیم است: یک عضو اطلاعات را جمعآوری میکند، دیگری آن را متراکم میکند و سومی ارائه را صیقل میدهد. ما این گردش کار را با انتزاعات CrewAI (عوامل، وظایف و تیم) پیادهسازی خواهیم کرد.
پیادهسازی کد
ابتدا تمام بستههای لازم برای پروژه را به طور یکجا نصب میکنیم. بستههای crewai و crewai-tools چارچوب و ابزارهای اضافی را برای سازماندهی عوامل هوش مصنوعی فراهم میکنند، در حالی که بسته transformers از Hugging Face مدلهای از پیش آموزشدیده را برای وظایف پردازش متن مانند خلاصهسازی ارائه میدهد.
در اینجا کلاسهای اصلی را از چارچوب CrewAI وارد میکنیم. کلاس Agent به شما امکان میدهد یک عامل هوش مصنوعی را با نقش و رفتار خاص تعریف کنید، Task نشاندهنده یک واحد کاری است که به یک عامل اختصاص داده شده است، Crew همکاری بین این عوامل را سازماندهی میکند و Process گردش کار اجرایی را تنظیم میکند (مانند ترتیبی یا موازی).
ما سه عامل هوش مصنوعی تخصصی را با استفاده از چارچوب CrewAI از طریق کد بالا تعریف میکنیم. هر عامل با نقش، هدف و پیشینه خاصی پیکربندی شده است که به آنها دستور میدهد چگونه در کار کلی مشارکت کنند: دستیار تحقیق نکات کلیدی را از یک مقاله استخراج میکند، خلاصهساز آن نکات را در یک پاراگراف مختصر متراکم میکند و نویسنده خروجی نهایی را در یک گزارش صیقلی قالببندی میکند.
سه تعریف وظیفه فوق مسئولیتهای خاصی را به عوامل مربوطه اختصاص میدهند. research_task به دستیار تحقیق دستور میدهد تا نکات کلیدی را از مقاله استخراج کند، summarization_task خلاصهساز را برای تبدیل آن نکات به یک پاراگراف مختصر هدایت میکند و writing_task از نویسنده میخواهد خلاصه را در یک گزارش نهایی ساختاریافته با عنوان و نتیجهگیری قالببندی کند.
اکنون، یک شی Crew ایجاد میکنیم که همکاری بین سه عامل تعریفشده و وظایف مربوطه آنها را در یک گردش کار ترتیبی سازماندهی میکند. با Process.sequential، هر کار یکی پس از دیگری اجرا میشود و تنظیم verbose=True ثبت دقیق فرآیند را فعال میکند.
در این بخش، یک رشته چند پاراگرافی به نام article_text تعریف میکنیم که یک مقاله را شبیهسازی میکند که در مورد تأثیر هوش مصنوعی در صنایع مختلف مانند مراقبتهای بهداشتی، خودرو، مالی و آموزش بحث میکند. سپس طول کاراکتر مقاله را چاپ میکند و به تأیید اینکه متن به درستی برای پردازش بیشتر بارگیری شده است، کمک میکند.
در اینجا یک تابع extract_key_points تعریف میکنیم که متن یک مقاله را با تقسیم آن به پاراگرافها و سپس به جملات پردازش میکند. برای هر پاراگراف، طولانیترین جمله را به عنوان نکته کلیدی انتخاب میکند (به عنوان یک روش ابتکاری) و اطمینان حاصل میکند که با علامت نگارشی مناسب به پایان میرسد. در نهایت، هر نکته کلیدی را به عنوان یک لیست شمارهدار چاپ میکند و خروجی عامل دستیار تحقیق را شبیهسازی میکند.
ما یک خط لوله خلاصهسازی Hugging Face را با استفاده از مدل "sshleifer/distilbart-cnn-12-6" مقداردهی اولیه میکنیم. سپس نکات کلیدی استخراجشده را در یک رشته واحد به هم متصل میکند و آن را به خط لوله میفرستد، که یک خلاصه مختصر تولید میکند. در نهایت، خلاصه حاصل را چاپ میکند و خروجی عامل خلاصهساز را شبیهسازی میکند.
در نهایت، کار عامل نویسنده را با قالببندی خروجی نهایی شبیهسازی میکنیم. یک عنوان و یک نتیجهگیری تعریف میکند و سپس اینها را با خلاصه قبلی تولیدشده (ذخیره شده در summary_text) با استفاده از یک f-string ترکیب میکند. گزارش نهایی در Markdown قالببندی شده است، با عنوان به عنوان یک سرصفحه، و پس از آن خلاصه و جمله پایانی. سپس برای نمایش خلاصه کامل و ساختاریافته چاپ میشود.
در خاتمه، این آموزش نشان داد که چگونه میتوان یک تیم از عوامل هوش مصنوعی را با استفاده از CrewAI ایجاد کرد و آنها را وادار به همکاری در یک کار کرد. ما یک مسئله (خلاصهسازی یک مقاله) را به زیروظایفی که توسط عوامل متخصص انجام میشود، ساختاربندی کردیم و جریان سرتاسر را با خروجیهای مثال نشان دادیم. CrewAI یک چارچوب انعطافپذیر برای مدیریت این همکاریهای چند عاملی فراهم میکند، در حالی که ما، به عنوان کاربران، نقشها و فرآیندهایی را تعریف میکنیم که کار تیمی عوامل را هدایت میکنند.
در اینجا Colab Notebook برای پروژه فوق وجود دارد. همچنین، فراموش نکنید که ما را در توییتر دنبال کنید و به کانال تلگرام ما و گروه لینکدین ما بپیوندید. فراموش نکنید که به 80k+ ML SubReddit ما بپیوندید.
مطالعه پیشنهادی - LG AI Research NEXUS را منتشر میکند: یک سیستم پیشرفته که سیستم هوش مصنوعی عامل و استانداردهای انطباق داده را برای رسیدگی به نگرانیهای قانونی در مجموعههای داده هوش مصنوعی ادغام میکند