معرفی
توسعه عامل هوش مصنوعی یکی از داغ ترین مرزهای نوآوری نرم افزار است. با پیشرفت کیفیت مدل های زبان بزرگ، شاهد افزایش ادغام عامل هوش مصنوعی با سیستم های نرم افزاری موجود خواهیم بود. با عوامل هوش مصنوعی، به جای پیمایش دستی در میان برنامهها، میتوان کارها را با دستورات صوتی یا حرکتی انجام داد. اما در حال حاضر، توسعه عامل در مرحله اولیه خود است. ما هنوز در حال گذراندن مرحله اولیه زیرساخت ها، ابزارها و چارچوب توسعه هستیم، مشابه اینترنت دهه 1990. بنابراین، در این مقاله، چارچوب دیگری برای توسعه عامل به نام CrewAI را مورد بحث قرار خواهیم داد.
اهداف یادگیری
- با عوامل هوش مصنوعی آشنا شوید.
- CrewAI را کاوش کنید - یک ابزار منبع باز برای ساخت عوامل.
- یک گروه هوش مصنوعی مشترک برای نوشتن محتوا بسازید.
- موارد استفاده واقعی از عوامل هوش مصنوعی را کاوش کنید.
این مقاله به عنوان بخشی از بلاگاتون علم داده.
جدول محتوا
عوامل هوش مصنوعی چیست؟
مدلهای زبان در ترجمه، خلاصهنویسی و استدلال برتری دارند. با این حال، شما می توانید کارهای زیادی با آنها انجام دهید. یکی از راههای درک کامل پتانسیل استدلال این است که LLMها را عاملی کنیم. عوامل هوش مصنوعی LLM هایی هستند که با ابزارها و درخواست های مناسب تقویت شده اند. این عوامل می توانند مرور، حذف وب، اجرای پرس و جو SQL، عملیات فایل و موارد دیگر را خودکار کنند. نمایندگان از ظرفیت استدلال LLMها برای انتخاب ابزاری بر اساس نیازهای فعلی استفاده می کنند. اما به جای استفاده از یک عامل واحد برای یک کار، میتوانیم بسیاری از آنها را برای انجام کارهای پیچیده ترکیب کنیم.
Langchain ابزار پیش فرضی است که هنگام بحث در مورد عوامل هوش مصنوعی به ذهن خطور می کند. با این حال، هماهنگ کردن دستی عوامل هوش مصنوعی برای انجام وظایف مشترک برای Langchain چالش برانگیز خواهد بود. اینجاست که CrewAI به تصویر میآید.
CrewAI چیست؟
CrewAI یک چارچوب متن باز برای سازماندهی نقش آفرینی و عوامل هوش مصنوعی مستقل است. این به ایجاد عوامل مشترک هوش مصنوعی برای دستیابی به اهداف پیچیده با سهولت کمک می کند. این چارچوب به گونهای طراحی شده است که عوامل هوش مصنوعی را قادر میسازد تا نقشهایی را به عهده بگیرند، وظایف را محول کنند و اهداف را به اشتراک بگذارند، مانند یک خدمه در دنیای واقعی. اینها برخی از ویژگی های منحصر به فرد CrewAI هستند:
- عوامل مبتنی بر نقش: ما میتوانیم عواملی را با نقشها، اهداف و پیشینههای خاص تعریف کنیم تا پیش از تولید پاسخ، زمینه بیشتری را به LLM بدهیم.
- مدیریت وظایف: وظایف را با ابزارها تعریف کنید و به صورت پویا آنها را به عوامل اختصاص دهید.
- تفویض اختیار بین عاملی: نمایندگان می توانند وظایفی را به سایر نمایندگان محول کنند تا به طور مؤثر همکاری کنند.
در زیر نمایشی از نقشه ذهنی CrewAI وجود دارد.
CrewAI به طور یکپارچه با اکوسیستم Langchain ادغام می شود. این بدان معناست که ما می توانیم از ابزارهای Langchain و ادغام های LLM با CrewAI استفاده کنیم.
ساخت یک خدمه هوش مصنوعی مشترک
برای درک بهتر CrewAI، بیایید عوامل هوش مصنوعی مشترک برای نوشتن محتوای خلاقانه بسازیم. برای این کار، عامل ها، ابزارها و وظایف مربوطه را برای هر عامل تعریف می کنیم. از آنجایی که این تیم یک تیم برای نوشتن محتوا است، ما سه عامل جداگانه مانند یک تحلیلگر ایده، یک نویسنده و یک ویرایشگر را تعریف خواهیم کرد. به هر عامل وظیفه ای محول خواهد شد.
عامل تحلیلگر مسئول تجزیه و تحلیل ایده و تهیه یک طرح جامع برای نوشتن محتوا خواهد بود. عامل Writer پیش نویس مقاله را آماده می کند و در نهایت ویرایشگر مسئولیت قالب بندی، ویرایش و تصحیح پیش نویس را بر عهده خواهد داشت. همانطور که می دانیم، CrewAI به ما امکان می دهد عوامل را با ابزارهای سفارشی تقویت کنیم. ویرایشگر را با ابزاری تقویت می کنیم تا آن را در دیسک محلی ذخیره کنیم. اما برای انجام همه این موارد، ما به یک LLM نیاز داریم. در اینجا از مدل Gemini گوگل استفاده خواهیم کرد.
بیایید به کدنویسی بپردازیم
مانند هر پروژه پایتون، یک محیط مجازی ایجاد کنید و وابستگی ها را نصب کنید. ما به کتابخانه Crewai و اجرای Langchain نیاز خواهیم داشت Google GenAI. میتوانید از سایر LLMها، مانند مدلهای دسترسی آزاد استفاده کنید با هم, هر مقیاس، یا مدل های OpenAI.
pip install crewai langchain-google-genai
گام بعدی این است که LLM و نمایندگان مشترک خود را تعریف کنیم. یک فایل جداگانه با نام agents.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 مطابقت داشته باشند. تابع انتظار دارد یک رشته واحد با دو قسمت، یک مسیر فایل، و محتوای جدا شده توسط یک لوله (|). رشته های doc متد نیز به عنوان زمینه اضافه شده برای تابع استفاده می شود. بنابراین، مطمئن شوید که اطلاعات دقیقی در مورد روش ارائه می دهید.
بیایید عوامل را تعریف کنیم
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 استفاده می شود تا زمینه بیشتری را ارائه دهد. عامل ویرایشگر یک ابزار نوشتن مرتبط با آن دارد.
مورد بعدی تعریف وظایف است. برای این کار، یک فایل tasks.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 را ایجاد کنید که در آن Agents و Tasks را برای ایجاد یک خدمه کاربردی جمع آوری می کنیم.
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.
Replit Repository: Sunil-KumarKu17/CollborativeAIAgent
موارد استفاده در دنیای واقعی
عوامل هوش مصنوعی مستقل می توانند موارد استفاده زیادی داشته باشند. از دستیاران شخصی گرفته تا مربیان مجازی. در اینجا چند مورد استفاده از عوامل هوش مصنوعی آورده شده است.
- دستیار هوش مصنوعی شخصی: دستیاران شخصی به زودی بخشی جدایی ناپذیر ما خواهند شد. یک دستیار جارویس مانند که تمام دادههای شما را پردازش میکند، بینشی را در حین رفتن به شما ارائه میکند و به تنهایی وظایف بیاهمیت را انجام میدهد.
- مفسران کد: مفسر کد OpenAI نمونه ای درخشان از یک عامل هوش مصنوعی است. مفسر می تواند هر اسکریپت پایتون را اجرا کند و نتایج را در پاسخ به یک اعلان متنی خروجی دهد. این بدون شک موفق ترین نماینده تا به امروز است.
- مربیان مجازی: همانطور که فناوری هوش مصنوعی در حال پیشرفت است، میتوانیم منتظر مربیان مجازی در بسیاری از زمینهها مانند آموزش، آموزش و غیره باشیم.
- نرم افزار عامل اول: یک مورد بزرگ بالقوه استفاده از عوامل هوش مصنوعی در توسعه نرم افزار عامل اول است. به جای مرور دستی و کلیک کردن روی دکمه ها برای انجام کارها، عوامل هوش مصنوعی به طور خودکار آنها را بر اساس دستورات صوتی انجام می دهند.
- محاسبات فضایی: با تکامل فناوری AR/VR، عوامل هوش مصنوعی نقش مهمی در پر کردن شکاف بین دنیای مجازی و واقعی خواهند داشت.
نتیجه
ما هنوز در مراحل اولیه توسعه عامل هوش مصنوعی هستیم. در حال حاضر، برای بهترین نتیجه ممکن از سوی عوامل هوش مصنوعی، باید به GPT-4 تکیه کنیم، و این گران است. اما از آنجایی که مدلهای منبع باز به GPT-4 میرسند، گزینههای بهتری برای اجرای کارآمد عوامل هوش مصنوعی با هزینه معقول دریافت خواهیم کرد. از سوی دیگر، چارچوب های توسعه عامل به سرعت در حال پیشرفت است. همانطور که به جلو می رویم، چارچوب ها عوامل را قادر می سازند تا کارهای پیچیده تری را انجام دهند.
گیرنده های کلیدی
- عوامل هوش مصنوعی از ظرفیت استدلال LLMها برای انتخاب ابزارهای مناسب برای انجام وظایف پیچیده استفاده می کنند.
- CrewAI یک چارچوب منبع باز برای ساخت عوامل هوش مصنوعی مشترک است.
- ویژگی منحصر به فرد CrewAI شامل عوامل مبتنی بر نقش، تفویض اختیار بین عاملی مستقل و مدیریت وظایف انعطاف پذیر است.
- CrewAI به طور یکپارچه با اکوسیستم Langchain موجود ادغام می شود. ما می توانیم از ابزارهای Langchain و ادغام های LLM با CrewAI استفاده کنیم.
پرسش و پاسخهای متداول
الف. عوامل هوش مصنوعی برنامههای نرمافزاری هستند که با محیط خود در تعامل هستند، تصمیم میگیرند و برای رسیدن به هدف نهایی اقدام میکنند.
A. این بستگی به موارد استفاده و بودجه شما دارد. GPT 4 تواناترین اما گران قیمت است، در حالی که مدل های GPT 3.5، Mixtral و Gemini Pro دارای کیفیت کمتری هستند اما سریع و ارزان هستند.
A. CrewAI یک چارچوب منبع باز برای سازماندهی نقش آفرینی و عوامل هوش مصنوعی مستقل است. این به ایجاد عوامل مشترک هوش مصنوعی برای دستیابی به اهداف پیچیده با سهولت کمک می کند.
A. CrewAI یک انتزاع سطح بالا برای ساخت عوامل هوش مصنوعی مشترک برای گردش های کاری پیچیده فراهم می کند.
الف. در Autogen، تعامل عوامل هماهنگ کننده به برنامه ریزی اضافی نیاز دارد که با افزایش مقیاس وظایف می تواند پیچیده و دست و پا گیر شود.
رسانه نشان داده شده در این مقاله متعلق به Analytics Vidhya نیست و به صلاحدید نویسنده استفاده می شود.
مربوط
- محتوای مبتنی بر SEO و توزیع روابط عمومی. امروز تقویت شوید.
- PlatoData.Network Vertical Generative Ai. به خودت قدرت بده دسترسی به اینجا.
- PlatoAiStream. هوش وب 3 دانش تقویت شده دسترسی به اینجا.
- PlatoESG. کربن ، CleanTech، انرژی، محیط، خورشیدی، مدیریت پسماند دسترسی به اینجا.
- PlatoHealth. هوش بیوتکنولوژی و آزمایشات بالینی. دسترسی به اینجا.
- منبع: https://www.analyticsvidhya.com/blog/2024/01/building-collaborative-ai-agents-with-crewai/
- : دارد
- :است
- :نه
- :جایی که
- $UP
- 10
- 11
- 16
- 8
- a
- درباره ما
- بالاتر
- انتزاع - مفهوم - برداشت
- قبول می کند
- انجام دادن
- انجام دادن
- رسیدن
- عمل
- عمل
- اقدامات
- اضافه کردن
- اضافه
- اضافی
- بالغ
- عامل
- عاملان
- AI
- معرفی
- همچنین
- an
- تحلیل
- روانکاو
- علم تجزیه و تحلیل
- تجزیه و تحلیل Vidhya
- تجزیه و تحلیل
- و
- دیگر
- پاسخ
- هر
- برنامه های کاربردی
- مناسب
- AR / VR
- هستند
- شاید، قابل بحث
- مقاله
- AS
- اختصاص داده
- دستیار
- دستیاران
- مرتبط است
- فرض
- At
- تقویت کردن
- افزوده شده
- نویسنده
- خودکار بودن
- بطور خودکار
- خود مختار
- اجتناب از
- مستقر
- BE
- شدن
- قبل از
- بهترین
- بهتر
- میان
- بلاگاتون
- طرح
- کتاب
- پل زدن
- درخشان
- مرور
- بودجه
- ساختن
- بنا
- اما
- دکمه ها
- by
- نام
- CAN
- توانا
- ظرفیت
- فریبنده
- مورد
- موارد
- کشتی
- دسته بندی
- زنجیر
- به چالش کشیدن
- ارزان
- کلاس
- رمز
- کد
- منسجم
- همکاری
- مشترک
- می آید
- نظرات
- متقاعد کننده
- داستان جذاب
- پیچیده
- مطابق
- جامع
- محتوا
- نوشتن مطالب
- محتویات
- زمینه
- کنوانسیون
- اصلاح
- هزینه
- ایجاد
- ایجاد
- ایجاد
- خالق
- خدمه
- بسیار سخت
- سنگین
- جاری
- در حال حاضر
- سفارشی
- خط تیره
- داده ها
- تاریخ
- تصمیم گیری
- به طور پیش فرض
- تعريف كردن
- مشخص
- نمایندگی
- غرق کردن
- وابستگی
- بستگی دارد
- طراحی
- دقیق
- پروژه
- تفاوت
- مختلف
- اختیار
- بحث و تبادل نظر
- بحث در مورد
- do
- دان
- انجام شده
- پیش نویس
- بطور پویا
- e
- هر
- در اوایل
- سهولت
- به آسانی
- اکوسیستم
- ویرایش
- سردبیر
- آموزش
- به طور موثر
- موثر
- موثر
- قادر ساختن
- پایان
- محیط
- خطا
- و غیره
- اتر (ETH)
- حتی
- تکامل می یابد
- مثال
- اکسل
- جز
- استثنا
- اجرا شده
- اعدام
- موجود
- انتظار
- انتظار می رود
- گران
- تجربه
- با تجربه
- گسترش
- فانتزی
- FAST
- ویژگی
- امکانات
- کمی از
- داستان
- زمینه
- پرونده
- نهایی
- سرانجام
- نام خانوادگی
- قابل انعطاف
- برای
- قالب
- به جلو
- چارچوب
- چارچوب
- از جانب
- مرز
- کامل
- کاملا
- تابع
- تابعی
- شکاف
- برج جوزا
- سوالات عمومی
- نسل
- ژست
- دریافت کنید
- GitHub
- دادن
- داده
- Go
- هدف
- اهداف
- رفتن
- گوگل
- رشد می کند
- دست
- دستگیره
- آیا
- کمک می کند
- اینجا کلیک نمایید
- در سطح بالا
- کاپوت
- داغترین
- اما
- HTTPS
- بزرگ
- i
- اندیشه
- ایده ها
- if
- پیاده سازی
- واردات
- in
- شامل
- از جمله
- اطلاعات
- شالوده
- اول
- ابداع
- ورودی
- بینش
- نصب
- در عوض
- انتگرال
- ادغام
- ادغام
- یکپارچگی
- تعامل
- فعل و انفعالات
- اینترنت
- به
- IT
- ITS
- خود
- اصطلاحات مخصوص یک صنف
- JPG
- کلید
- ضربات
- دانستن
- کومار
- زبان
- بزرگ
- طول
- کمتر
- اجازه می دهد تا
- قدرت نفوذ
- کتابخانه
- پسندیدن
- کوچک
- محلی
- ورود به سیستم
- نگاه کنيد
- خیلی
- اصلی
- ساخت
- مدیریت
- دستی
- بسیاری
- نقشه
- به معنی
- رسانه ها
- روش
- ذهن
- اشتباهات
- مدل
- مدل
- بیش
- اکثر
- حرکت
- به جلو حرکت کن
- بسیار
- باید
- تحت عنوان
- نوظهور
- پیمایش
- نیاز
- ضروری
- بعد
- دفتر یادداشت
- اکنون
- NYT
- مشاهده کردن
- of
- خاموش
- on
- یک بار
- ONE
- منبع باز
- OpenAI
- عملیات
- گزینه
- or
- ارکستراسیون
- سفارش
- OS
- دیگر
- ما
- نتیجه
- تولید
- متعلق به
- جفت
- بخش
- بخش
- مسیر
- انجام دادن
- شخصی
- فاز
- تصویر
- لوله
- برنامه
- افلاطون
- هوش داده افلاطون
- PlatoData
- بازی
- نقطه
- نقطه
- ممکن
- پتانسیل
- آماده
- آماده
- در هر
- فرآیندهای
- برنامه نويسي
- برنامه ها
- در حال پیشرفت
- پروژه
- پرسیدن
- فراهم می کند
- منتشر شده
- پــایتــون
- واجد شرایط
- کیفیت
- سریعا
- واقعی
- دنیای واقعی
- تحقق بخشیدن
- معقول
- اخذ شده
- تکیه
- مشهور
- مخزن
- نمایندگی
- نمایندگی
- مورد نیاز
- نیاز
- قابل احترام
- پاسخ
- مسئوليت
- نتیجه
- نتایج
- برگشت
- راست
- نقش
- نقش بازی کردن
- نقش
- قوانین
- دویدن
- در حال اجرا
- ذخیره
- مقیاس
- Sci-Fi حجم
- علم
- خط
- یکپارچه
- را انتخاب کنید
- خود
- جداگانه
- اشتراک گذاری
- باید
- نشان داده شده
- مشابه
- تنها
- عکس فوری
- So
- نرم افزار
- توسعه نرم افزار
- برخی از
- بزودی
- خاص
- SQL
- صحنه
- مراحل
- گام
- هنوز
- داستان
- داستان
- رشته
- زیرنویس
- موفق
- مناسب
- مطمئن
- افزایش
- سیستم های
- T
- کار
- وظایف
- تیم
- فن آوری
- پایانه
- متن
- که
- La
- شان
- آنها
- اینها
- آنها
- چیز
- اشیاء
- این
- سه
- از طریق
- بار
- عنوان
- به
- ابزار
- ابزار
- آموزش
- ترجمه
- امتحان
- دو
- زیر
- فهمیدن
- منحصر به فرد
- ویژگی های منحصر به فرد
- us
- استفاده کنید
- مورد استفاده
- از Cases Of AI استفاده کنید
- استفاده
- مفید
- کاربر
- استفاده
- با استفاده از
- متبحر
- مجازی
- صدا
- دستورات صوتی
- W
- می خواهم
- بود
- راه
- we
- وب
- وب سایت
- خوب
- چی
- چه شده است
- چه زمانی
- که
- در حین
- اراده
- با
- شاهد
- کلمات
- گردش کار
- گردش کار
- جهان
- خواهد بود
- نوشتن
- نویسنده
- نوشته
- کتبی
- سال
- شما
- شما
- زفیرنت