مقدمه
تصور کنید یک دستیار شخصی دارید که نه تنها درخواست های شما را درک می کند، بلکه دقیقاً می داند که چگونه آنها را اجرا کند، خواه انجام یک محاسبه سریع یا کشیدن آخرین اخبار بازار سهام باشد. در این مقاله، ما وارد دنیای جذاب عوامل هوش مصنوعی میشویم و بررسی میکنیم که چگونه میتوانید با استفاده از چارچوب LlamaIndex خودتان را بسازید. ما شما را گام به گام از طریق ایجاد این عوامل هوشمند راهنمایی میکنیم، قدرت قابلیتهای فراخوانی عملکرد LLM را برجسته میکنیم و نشان میدهیم که چگونه آنها میتوانند تصمیم بگیرند و وظایف را با کارایی چشمگیر انجام دهند. چه در زمینه هوش مصنوعی تازه کار باشید و چه یک توسعه دهنده باتجربه، این راهنما به شما نشان می دهد که چگونه می توانید پتانسیل کامل عوامل هوش مصنوعی را تنها با چند خط کد باز کنید.
نتایج یادگیری
- اصول اولیه عوامل هوش مصنوعی و توانایی های حل مسئله آنها را درک کنید.
- نحوه پیاده سازی عوامل هوش مصنوعی با استفاده از چارچوب LlamaIndex را بیاموزید.
- ویژگی های فراخوانی تابع را در LLM ها برای اجرای کارآمد کاوش کنید.
- نحوه ادغام ابزارهای جستجوی وب را در عوامل هوش مصنوعی خود کشف کنید.
- تجربه عملی در ساخت و سفارشی سازی عوامل هوش مصنوعی با پایتون داشته باشید.
این مقاله به عنوان بخشی از بلاگاتون علم داده.
عوامل هوش مصنوعی چیست؟
عوامل هوش مصنوعی مانند دستیارهای دیجیتالی روی استروئیدها هستند. آنها فقط به دستورات شما پاسخ نمی دهند – آنها می فهمند، تجزیه و تحلیل می کنند و در مورد بهترین راه برای اجرای آن دستورات تصمیم می گیرند. عوامل هوش مصنوعی چه برای پاسخ دادن به سؤالات، انجام محاسبات و یا بازیابی آخرین اخبار طراحی شده اند تا وظایف پیچیده را با کمترین مداخله انسانی انجام دهند. این عوامل می توانند پرس و جوها را به زبان طبیعی پردازش کنند، جزئیات کلیدی را شناسایی کرده و از قابلیت های خود برای ارائه دقیق ترین و مفیدترین پاسخ ها استفاده کنند.
چرا از عوامل هوش مصنوعی استفاده کنیم؟
ظهور عوامل هوش مصنوعی نحوه تعامل ما با فناوری را تغییر داده است. آنها میتوانند وظایف تکراری را خودکار کنند، تصمیمگیری را بهبود بخشند و تجربیات شخصیسازیشده ارائه دهند، و آنها را در صنایع ارزشمند میسازند. خواه در امور مالی، مراقبت های بهداشتی یا تجارت الکترونیک هستید، عوامل هوش مصنوعی می توانند با انجام وظایفی که در غیر این صورت به تلاش دستی قابل توجهی نیاز دارند، عملیات را ساده کرده، خدمات مشتری را بهبود بخشند و بینش عمیقی ارائه دهند.
LlamaIndex چیست؟
LlamaIndex یک چارچوب پیشرفته است که برای ساده سازی فرآیند ساخت عوامل هوش مصنوعی با استفاده از مدل های زبان در مقیاس بزرگ (LLM) طراحی شده است. از قدرت LLM مانند مدلهای OpenAI استفاده میکند و به توسعهدهندگان اجازه میدهد تا عوامل هوشمندی با حداقل کدنویسی ایجاد کنند. با LlamaIndex، میتوانید ویژگیهای سفارشی پایتون را اضافه کنید و چارچوب بهطور خودکار آنها را با LLM ادغام میکند و به عامل هوش مصنوعی شما اجازه میدهد تا طیف وسیعی از وظایف را انجام دهد.
ویژگی های اصلی LlamaIndex
- فراخوانی یک تابع: LlamaIndex به عوامل هوش مصنوعی اجازه می دهد تا عملکردهای خاصی را بر اساس درخواست کاربر فراخوانی کنند. این ویژگی برای ایجاد عواملی که می توانند چندین کار را انجام دهند ضروری است.
- یکپارچه سازی ابزار: این چارچوب از ادغام ابزارهای مختلف، از جمله جستجوی وب، تجزیه و تحلیل دادهها و موارد دیگر پشتیبانی میکند و عامل شما را قادر میسازد تا عملیات پیچیده را انجام دهد.
- آسان برای استفاده: LlamaIndex به گونه ای طراحی شده است که کاربر پسند باشد و برای مبتدیان و توسعه دهندگان با تجربه قابل دسترسی باشد.
- امکان سفارشی سازی: LlamaIndex با پشتیبانی از عملکردهای سفارشی و ویژگیهای پیشرفته مانند مدلهای پدانتیک، انعطافپذیری لازم را برای کاربردهای تخصصی فراهم میکند.
مراحل استقرار عوامل هوش مصنوعی با استفاده از LlamaIndex
بیایید اکنون به مراحل نحوه پیاده سازی عوامل هوش مصنوعی با استفاده از LlamaIndex نگاه کنیم.
در اینجا، ما از GPT-4o از OpenAI به عنوان مدل LLM خود استفاده خواهیم کرد و جستجوهای وب از طریق جستجوی Bing انجام می شود. Llama Index اکنون دارای موتور جستجوی Bing است و با این دستور قابل نصب است.
!pip install llama-index-tools-bing-search
مرحله 1: کلید API را دریافت کنید
ابتدا باید یک کلید API جستجوی Bing ایجاد کنید که با ایجاد یک منبع Bing از لینک زیر می توانید به دست آورید. برای آزمایشات، Bing همچنین یک سطح رایگان با 3 تماس در ثانیه و 1 هزار تماس در ماه ارائه می دهد.
مرحله 2: کتابخانه های مورد نیاز را نصب کنید
کتابخانه های پایتون مورد نیاز را با استفاده از دستورات زیر نصب کنید:
%%capture
!pip install llama_index llama-index-core llama-index-llms-openai
!pip install llama-index-tools-bing-search
مرحله 3: متغیرهای محیط را تنظیم کنید
سپس، کلیدهای API خود را به عنوان متغیرهای محیطی تنظیم کنید تا LlamaIndex بتواند در زمان اجرا به آنها دسترسی داشته باشد.
import os
os.environ["OPENAI_API_KEY"] = "sk-proj-<openai_api_key>"
os.environ['BING_API_KEY'] = "<bing_api_key>"
مرحله 4: LLM را راه اندازی کنید
مدل LLM را راهاندازی کنید (در این مورد GPT-4o از OpenAI) و یک آزمایش ساده برای تأیید کارکرد آن اجرا کنید.
from llama_index.llms.openai import OpenAI
llm = OpenAI(model="gpt-4o")
llm.complete("1+1=")
مرحله 5: دو تابع مختلف ایجاد کنید
دو عملکرد ایجاد کنید که عامل هوش مصنوعی شما از آنها استفاده خواهد کرد. تابع اول یک اضافه ساده را انجام می دهد، در حالی که تابع دوم آخرین اخبار بازار سهام را با استفاده از جستجوی Bing بازیابی می کند.
from llama_index.tools.bing_search import BingSearchToolSpec
def addition_tool(a:int, b:int) -> int:
"""Returns sum of inputs"""
return a + b
def web_search_tool(query:str) -> str:
"""A web query tool to retrieve latest stock news"""
bing_tool = BingSearchToolSpec(api_key=os.getenv('BING_API_KEY'))
response = bing_tool.bing_news_search(query=query)
return response
برای تعریف بهتر توابع، می توانیم از مدل های پدانتیک نیز استفاده کنیم. اما برای سادگی، در اینجا به توانایی LLM برای استخراج آرگومان ها از پرس و جو کاربر تکیه می کنیم.
مرحله 6: یک شی ابزار ویژگی از ویژگی های تعریف شده توسط کاربر ایجاد کنید
from llama_index.core.tools import FunctionTool
add_tool = FunctionTool.from_defaults(fn=addition_tool)
search_tool = FunctionTool.from_defaults(fn=web_search_tool)
یک ابزار تابع به کاربران اجازه می دهد تا به راحتی هر تابع تعریف شده توسط کاربر را به یک شی ابزار تبدیل کنند.
در اینجا نام تابع نام ابزار است و رشته سند به عنوان توضیحات در نظر گرفته می شود، اما می توان آن را نیز مانند شکل زیر جایگزین کرد.
tool = FunctionTool.from_defaults(addition_tool, name="...", description="...")
مرحله 7: با یک درخواست کاربر، متد predict_and_call را فراخوانی کنید
query = "what is the current market price of apple"
response = llm.predict_and_call(
tools=[add_tool, search_tool],
user_msg=query, verbose = True
)
در اینجا ما متد predict_and_call llm را به همراه درخواست کاربر و ابزارهایی که در بالا تعریف کردیم فراخوانی خواهیم کرد. آرگومان های ابزارها می توانند با قرار دادن همه توابع در یک لیست، بیش از یک تابع را بپذیرند. این روش از طریق پرس و جو کاربر حلقه می زند و تصمیم می گیرد که مناسب ترین ابزار برای انجام وظیفه داده شده از لیست ابزارها کدام است.
خروجی نمونه
=== فراخوانی تابع === تابع فراخوانی: web_search_tool با آرگومان ها: {"query": "قیمت فعلی بازار سهام اپل"} === خروجی تابع ===
[['Warren Buffett Just Sold a Huge Chunk of Apple Stock. Should You Do the Same?', ..........
Step8: Putting All Together
from llama_index.llms.openai import OpenAI
from llama_index.tools.bing_search import BingSearchToolSpec
from llama_index.core.tools import FunctionTool
llm = OpenAI(model="gpt-4o")
def addition_tool(a:int, b:int)->int:
"""Returns sum of inputs"""
return a + b
def web_search_tool(query:str) -> str:
"""A web query tool to retrieve latest stock news"""
bing_tool = BingSearchToolSpec(api_key=os.getenv('BING_API_KEY'))
response = bing_tool.bing_news_search(query=query)
return response
add_tool = FunctionTool.from_defaults(fn=addition_tool)
search_tool = FunctionTool.from_defaults(fn=web_search_tool)
query = "what is the current market price of apple"
response = llm.predict_and_call(
tools=[add_tool, search_tool]user_msg=درخواست، پرمخاطب = درست)
سفارشی سازی پیشرفته
برای کسانی که به دنبال فراتر رفتن از مرزهای کاری که عوامل هوش مصنوعی میتوانند انجام دهند، سفارشیسازی پیشرفته ابزارها و تکنیکهایی را برای اصلاح و گسترش قابلیتهای آنها ارائه میدهد و به نماینده شما اجازه میدهد تا وظایف پیچیدهتری را انجام دهد و نتایج دقیقتری ارائه دهد.
بهبود تعاریف تابع
برای بهبود نحوه تفسیر و استفاده از ویژگیها توسط عامل هوش مصنوعی، میتوانید از الگوهای پدانتیک استفاده کنید. این کار بررسی نوع و اعتبار سنجی را اضافه می کند و اطمینان حاصل می کند که نماینده شما ورودی ها را به درستی مدیریت می کند.
با درخواست های پیچیده کار کنید
برای درخواستهای پیچیدهتر کاربر، ایجاد ابزارهای اضافی یا اصلاح ابزارهای موجود برای رسیدگی به چندین کار یا درخواستهای پیچیدهتر را در نظر بگیرید. این می تواند شامل اضافه کردن مدیریت خطا، ثبت و یا حتی منطق سفارشی برای کنترل نحوه واکنش عامل به سناریوهای مختلف باشد.
نتیجه گیری
عوامل هوش مصنوعی می توانند ورودی کاربر را پردازش کنند، درباره بهترین رویکرد استدلال کنند، به دانش مربوطه دسترسی داشته باشند و اقداماتی را برای ارائه پاسخ های دقیق و مفید انجام دهند. آنها می توانند پارامترهای مشخص شده در درخواست کاربر را بازیابی کرده و آنها را به تابع مناسب برای انجام کار ارسال کنند. با چارچوب های LLM مانند LlamaIndex، Langchain و غیره، می توان به راحتی عوامل را با چند خط کد پیاده سازی کرد و همچنین مواردی مانند تعاریف تابع را با استفاده از الگوهای pedantic سفارشی کرد.
یافته های کلیدی
- Agent ها می توانند چندین عملکرد مستقل را بپذیرند و بر اساس درخواست کاربر تعیین کنند که کدام عملکرد را انجام دهند.
- هنگام فراخوانی یک تابع، LLM بر اساس نام تابع و توضیحات، تصمیم می گیرد که کدام تابع برای انجام کار بهتر است.
- نام تابع و توضیحات را می توان با مشخص کردن صریح نام تابع و پارامتر توضیحات هنگام ایجاد شی ابزار لغو کرد.
- Llamaindex ابزارها و تکنیک هایی را برای پیاده سازی عوامل هوش مصنوعی در چند خط کد تعبیه کرده است.
- همچنین شایان ذکر است که عاملهای فراخوانی تابع را فقط می توان با استفاده از LLMهایی که از فراخوانی تابع پشتیبانی می کنند پیاده سازی کرد.
سوالات متداول
الف. عامل هوش مصنوعی دستیار دیجیتالی است که درخواست های کاربر را پردازش می کند، بهترین رویکرد را تعیین می کند و وظایفی را برای ارائه پاسخ های دقیق انجام می دهد.
A. LlamaIndex یک چارچوب محبوب است که به اجرای آسان عوامل هوش مصنوعی با استفاده از LLM، مانند مدلهای OpenAI، اجازه میدهد.
الف. فراخوانی تابع به عامل هوش مصنوعی این امکان را می دهد که مناسب ترین عملکرد را بر اساس درخواست کاربر انتخاب کند و این فرآیند را کارآمدتر می کند.
الف. میتوانید جستجوی وب را با استفاده از ابزارهایی مانند BingSearchToolSpec که دادههای بلادرنگ را بر اساس پرسوجوها جمعآوری میکند، یکپارچه کنید.
پاسخ. بله، عوامل هوش مصنوعی میتوانند چندین ویژگی را ارزیابی کنند و بر اساس درخواست کاربر بهترین مورد را برای انجام انتخاب کنند.
رسانه نمایش داده شده در این مقاله متعلق به Analytics Vidhya نیست و بنا به صلاحدید نویسنده استفاده می شود.