اپن هیآی (OpenAI) اخیراً مجموعهای از ابزارها را منتشر کرده است که برای کمک به توسعهدهندگان و شرکتها در ساخت و استقرار هوش مصنوعی عاملدار (Agentic AI) خود طراحی شدهاند. برای کسانی که با هوش مصنوعی عاملدار آشنا نیستند، این نوع هوش مصنوعی زمانی است که AI میتواند با تعامل یا راهنمایی بسیار کم انسانی به طور مستقل عمل کند.
انتشار این ابزارها توسط OpenAI پیشرفت قابل توجهی برای کاربردهای پیشرفته هوش مصنوعی است، زیرا استدلال پیچیده، تعاملات چندوجهی، و وظایف چندمرحلهای از چالشبرانگیزترین فعالیتهای هوش مصنوعی برای پیادهسازی هستند، حتی برای توسعهدهندگان پیشرفته هوش مصنوعی و متخصصان یادگیری ماشین. بدون آموزش کافی یا نظارت گسترده انسانی، مفید بودن راهحلهای هوش مصنوعی مانند مدلهای زبانی بزرگ (LLMها) به شدت محدود است.
برای جبران این کاستیها، OpenAI اخیراً مجموعهای از ابزارها را منتشر کرده است که توسعه هوش مصنوعی عاملدار خود را تا حد امکان آسان میکند. برای کمک به شما در ساخت هوش مصنوعی عاملدار با استفاده از ابزارهای OpenAI، ما یک راهنما تهیه کردهایم تا این فرآیند را تا حد ممکن بدون دردسر کنیم.
چگونه هوش مصنوعی عاملدار را با استفاده از ابزارهای OpenAI بسازیم
ابزارهای OpenAI برای هوش مصنوعی عاملدار سه جزء اصلی دارند. API Responses وجود دارد که بر پایه API Chat Completions قبلی توسعه یافته است. سپس ابزارهایی برای جستجو در وب یا کامپیوترهای محلی وجود دارد. در نهایت، Agents SDK جدید امکان پیادهسازی سریع و آسان جریانهای کاری تکعاملی و چندعاملی را در زبانهای برنامهنویسی مختلف فراهم میکند. حتی مجموعهای از ابزارهای رصدپذیری وجود دارد که به شما اجازه میدهد عملکرد هوش مصنوعی عاملدار را نظارت کنید.
برای کمک به شما در شروع استفاده از ابزارهای OpenAI برای ساخت هوش مصنوعی عاملدار، بیایید به هر یک از این اجزا عمیقتر بپردازیم تا ایده بهتری از نحوه استفاده از آنها در پروژههایتان به دست آورید. ما به شما نشان خواهیم داد که چگونه از API Responses جدید برای ایجاد یک هوش مصنوعی پیشنهاد کتاب استفاده کنید که میتواند روی دادههای محلی آموزش ببیند و سپس برای کاربردهای مختلف سفارشی شود.
API Responses
API Responses جدید گسترش API Chat Completion قبلی است، مدلی پایه که توسط LLMهایی مانند ChatGPT استفاده میشود.
API Responses قابلیت جستجو در وب یا جستجوی فایلها در سیستمهای محلی را اضافه میکند. این برای توسعهدهندگانی طراحی شده است که میخواهند مدلهایشان بدون دردسر اتصال چندین API به دنیای واقعی دسترسی داشته باشند. این API به روشهای مختلفی API Chat Completion را بهبود میبخشد و جستجوی یک مورد خاص، ادغام رویدادهای استریم، یا قالببندی خروجی مدل را آسانتر میکند.
API Chat Completion همچنین ذخیرهسازی دادهها را برای یک LLM آسانتر میکند، کاری که OpenAI معمولاً انجام نمیدهد. این برای توسعهدهندگانی ایدهآل است که میخواهند مدلهای خود را با استفاده از دادههای خودشان آموزش دهند، حوزه دیگری که OpenAI به طور سنتی در آن ضعیف بوده است.
جستجوی وب با ابزارهای OpenAI
قابلیت تعامل یک عامل هوش مصنوعی با اینترنت بسیاری از کاستیهای LLMها را که گاهی مستعد آن هستند، برطرف میکند. وقتی دسترسی به اطلاعات بهروز در زمان واقعی وجود داشته باشد، نیاز کمتری به توهمزایی وجود دارد. API Responses به توسعهدهندگان اجازه میدهد تا جستجوی وب را تنها با چند خط کد پیادهسازی کنند.
برای مثال، اگر بخواهید LLM شما انتشارات جدید کتابهای قابل توجه را جستجو کند، میتوانید به سادگی کد جاوااسکریپت زیر را در کد خود قرار دهید:
const response = await openai.responses.create({
model: "gpt-4o",
tools: [ { type: "web_search_preview" } ],
input: "What are some notable books that came out this week?",
});
console.log(response.output_text);
ابزار جستجوی وب ارائهشده توسط API Responses مشابه هر پاسخ دیگری توسط یک LLM عمل میکند. از یک معیار ساده برای تحلیل دقت پاسخ استفاده میکند. مدل تنها پاسخهایی با امتیاز دقت ۸۸٪ یا بالاتر را برمیگرداند.
پاسخهای برگرداندهشده همچنین شامل منابع هستند، که به کاربر اجازه میدهد درباره نحوه تعیین پاسخ توسط LLM بیشتر بداند.
جستجوی فایل محلی
API Responses همچنین به شما اجازه میدهد فایلهای موجود در سیستم محلی یا شبکه خود را جستجو کنید. از انواع فایلهای مختلف پشتیبانی میکند که سپس میتوان آنها را بر اساس متادیتا فیلتر، رتبهبندی یا مرتب کرد.
در اینجا مثالی از جستجوی فایل محلی برای جستجو در مجموعهای از متون آمده است:
// First, create a vector store with uploaded files
const corpusTexts = await openai.vectorStores.create({
name: "Corpus Texts",
file_ids: [file1.id, file2.id, file3.id], // Assume these files are already uploaded
});
// Now query it using the Responses API
const response = await openai.responses.create({
model: "gpt-4o-mini",
tools: [{
type: "file_search",
vector_store_ids: [productDocs.id], // Correctly referencing the ID
}],
input: "What is the meaning of life?",
});
console.log(response.output_text);
عملکرد جستجوی فایل یکی از مفیدترین ویژگیها برای یک LLM سفارشی است. به کاربران اجازه میدهد با هر سندی که جستجو میکنند تعامل داشته باشند و دستیاران مجازی و چتباتهای بسیار پیشرفته را ممکن میسازد.
استفاده از کامپیوتر
API Responses محدود به بازگشت پرسوجوهای متنی نیست. همچنین میتواند عملکردهای پایه کامپیوتر مانند حرکات ماوس و اقدامات صفحهکلید را تکرار کند، مشابه اتوماسیونها در پایتون. LLM تمام حرکات را انجام میدهد به جای ضبط اقدامات کاربران.
استفاده از کامپیوتر ابزار داخلی دیگری است که با API Responses کار میکند. در اینجا مثالی از نحوه پیادهسازی اقدامات استفاده از کامپیوتر در کد آمده است:
const response = await openai.responses.create({
model: "computer-use-preview",
tools: [{
type: "computer_use_preview",
display_width: 1024,
display_height: 768,
environment: "browser",
}],
truncation: "auto",
input: "Can you help me pick out the right guitar?",
});
console.log(response.output);
عملکرد استفاده از کامپیوتر شکاف بین هوش مصنوعی، تولید تقویتشده با بازیابی، و اتوماسیون فرآیند رباتیک (اصطلاح کلی برای وظایف خودکار مانند وباسکرپینگ یا ورود داده) را بیشتر پر میکند.
Agents SDK
Agents SDK OpenAI به کاربران اجازه میدهد تا به راحتی ابزارهای هوش مصنوعی عاملدار را در کد خود ادغام کنند و جابجایی بین عوامل، نظارت بر تراکنشها، و نصب گاردریلها را آسان میکند. در اینجا مثالی از نحوه استفاده از کتابخانه agents پس از نصب Agents SDK آمده است:
from agents import Agent, Runner, WebSearchTool, function_tool, guardrail
@function_tool
def submit_refund_request(item_id: str, reason: str):
# Your refund logic goes here
return "success"
support_agent = Agent(
name="Customer Service Representative",
instructions="You are a Customer Service Representative. Your job is to be helpful and understanding [...]",
tools=[submit_refund_request],
)
shopping_agent = Agent(
name="Personal Shopper",
instructions="You are a shopping assistant that's able to search the web [...]",
tools=[WebSearchTool()],
)
switchboard = Agent(
name="",
instructions="Route the user to the correct agent.",
handoffs=[shopping_agent, support_agent],
)
output = Runner.run_sync(
starting_agent=Switchboard,
input="Which guitar should I get?",
)
این اسکریپت پایتون کتابخانه Agent را وارد میکند و سپس از آن برای ایجاد سه عامل استفاده میکند. عامل پیشفرض را به عنوان Switchboard تنظیم میکند. سپس از عامل درباره خرید گیتار مشاوره میخواهد.
شروع کار با Agents SDK
در پایان، به شما نشان خواهیم داد که چگونه با Agents SDK شروع کنید تا بتوانید هوش مصنوعی عاملدار را در کد و پروژههای خودتان امتحان کنید.
با کلون کردن مخزن GitHub OpenAI شروع کنید:
git clone https://github.com/openai/openai-agents-python
پس از اتمام نصب، یک محیط مجازی ایجاد کنید و آن را فعال کنید.
python -m venv env
source env/bin/activate
در ادامه، Agents SDK را نصب کنید.
pip install openai-agentsپس از نصب Agents SDK، میتوانید کد آزمایشی خود را اجرا کنید. فقط مطمئن شوید که متغیر محیطی کلید API خود را تنظیم کردهاید. (اگر هنوز کلید API OpenAI ندارید، میتوانید یکی اینجا دریافت کنید.
نصب Guardrails و انتقال عاملدار با Agents SDK
اجرای عوامل خودکار بدون هیچ نظارت یا محدودیتی اشتباه است. گاردریلها کمک میکنند تا اطمینان حاصل شود که عوامل هوش مصنوعی شما به طور ایمن و امن عمل میکنند در حالی که مستقل باقی میمانند. همچنین میتوانند نیت کاربر را تعیین کنند و راه مناسبی برای تعیین اینکه کدام عامل بهترین نیازهای کاربر را برآورده میکند، باشند.
گاردریلهای OpenAI به موازات عوامل شما اجرا میشوند و به هر تعامل با هوش مصنوعی اجازه نظارت و اعتبارسنجی میدهند. برای مثال، ممکن است از گاردریلها برای هدایت ترافیک عمومی به سمت خدمات رایگان یا ارزانتر به جای ابزارهای گرانتر استفاده کنید.
برای پیادهسازی گاردریلها در برنامه OpenAI خود، با نصب کتابخانههای لازم شروع کنید.
pip install pydantic-ai openai-agents nest-asyncio google-colabحالا میتوانید nest_asyncio را وارد کنید که به شما اجازه میدهد نسخههای تو در تو از asyncio را اجرا کنید، و همچنین از کتابخانه google-colab استفاده کنید که برای وارد کردن دادههای کاربر از آن استفاده خواهیم کرد.
from agents import Agent, InputGuardrail, GuardrailFunctionOutput, Runner
from pydantic import BaseModel
from google.colab import userdata
import asyncio
import os
os.environ["OPENAI_API_KEY"] =
userdata.get("OPENAI_API_KEY")
مطمئن شوید که متغیر محیطی OPENAI_API_KEY خود را تنظیم کردهاید، چه با استفاده از دستور SET در ترمینال یا با ذخیره یک فایل .env در دایرکتوری توسعهتان. اگر روش .env را انتخاب کنید، باید کتابخانه python-dotenv را نیز نصب کنید. سپس میتوانید کلید API را با استفاده از تابع load_dotenv() پس از وارد کردن کتابخانه dotenv فراخوانی کنید.
پس از اتمام این کار، میتوانید گاردریلها را پیکربندی کنید، مشابه نحوه تنظیم عوامل. با تعریف عوامل برای گاردریلها و انتقالها شروع میکنید.
cs_research_agent = Agent(
name="CS Researcher",
handoff_description="Specialist agent for Computer Science Research",
instructions="You provide help with CS research. Explain your reasoning at each step and include examples.",
)
bio_research_agent = Agent(
nam="Biology Researcher",
handoff_description="Specialist agent for Biological Research",
instructions="You assist with biological research. Explain important events and context clearly."
)
حالا میتوانید محرکهای گاردریل را تنظیم کنید.
async def research_guardrail(ctx, agent, input_data):
result = await Runner.run(guardrail_agent, input_data, context=ctx.context)
final_output = result.final_output_as(ResearchOutput)
return GuardrailFunctionOutput(
output_info=final_output,
tripwire_triggered=not final_output.is_research,
)
در ادامه، انتقال عامل را تنظیم خواهید کرد.
triage_agent = Agent(
name="Triage Agent",
instructions="You determine which agent to use based on the user's research question",
handsoff=[cs_research_agent, bio_research_agent],
input_guardrails=[
InputGuardrail(guardrail_function=research_guardrail),
],
)
در نزدیکی پایان، ردیابی صریح را تنظیم خواهیم کرد.
from agents.tracing.setup import GLOBAL_TRACE_PROVIDER
from agents import set_tracting_export_api_key
set_tracing_export_api_key(OPENAI_API_KEY)
GLOBAL_TRACE_PROVIDER._multi_processor.force_flush()
در نهایت، آماده اجرای عامل هستیم.
async def main():
result = await Runner.run(triage_agent, "What is Agentic AI?"
print(result.final_output)
if __name__== "__main__":
asynchio.run(main())
هماهنگسازی عوامل هوشمندتر با OpenAI
همانطور که میبینید، هوش مصنوعی عاملدار راهی کارآمد برای پیادهسازی انواع منطق در کد شماست که گاهی اوقات تحقق آن دشوار است. این تقسیمبندی میتواند به روشهای ارزشمند زیادی استفاده شود، به ویژه در مورد هوش مصنوعی و LLMها.
استفاده از ابزارهای OpenAI برای ساخت هوش مصنوعی عاملدار به شما اجازه میدهد مدل را به راحتی برای کاربردهای مختلف سفارشی کنید و از یک LLM برای کاربردهای مختلف استفاده کنید. تنظیم عوامل به شما اجازه میدهد به راحتی هوش مصنوعی عاملدار را روی دادههای خاص آموزش دهید که میتواند برای تنظیم همه چیز از چتباتها تا عوامل خدمات مشتری تا دستیاران تحقیقاتی آموزشدیده بینهایت مفید باشد.
حتی بهتر، گاردریلها به کاربران اجازه میدهند به راحتی بین عوامل مختلف برای کاربردهای مختلف جابجا شوند بدون اینکه توسعهدهندگان مجبور به نوشتن کدهای زیاد برای تحقق منطق آن باشند. با اضافه کردن پشتیبانی بومی برای جستجو در وب و فایلهای محلی، ابزارهای OpenAI برای هوش مصنوعی عاملدار نوید اصلاح بسیاری از کاستیهای اولیه هوش مصنوعی را میدهند.
