AI APIs

ساخت عامل‌های هوشمند: تسلط بر فراخوانی توابع و اجرای کد در API جمنای

دوره تعاملات ساده پرسش و پاسخ با مدل‌های زبانی بزرگ (LLM) به سرعت در حال تحول است. چشم‌انداز توسعه‌ی امروز سیستم‌هایی را می‌طلبد که بتوانند استدلال کنند، عمل کنند و نتایج را تأیید نمایند. API جمنای گوگل در پیش‌روی این تحول قرار دارد و ابزارهای قدرتمندی ارائه می‌دهد که به توسعه‌دهندگان امکان می‌سازد جریان‌های کاری عامل‌محور (Agentic) بسازند. با ترکیب قابلیت‌های فراخوانی توابع و اجرای کد، توسعه‌دهندگان می‌توانند عامل‌های هوش مصنوعی بسازند که نه تنها برنامه‌ریزی می‌کنند، بلکه منطق پیچیده را اجرا کرده و داده‌های لحظه‌ای را بازیابی می‌کنند.

درک حلقه عامل‌محور (Agentic Loop)

یک سیستم «عامل‌محور» در یک حلقه عمل می‌کند: برنامه‌ریزی می‌کند، عمل می‌کند، نتیجه را مشاهده می‌کند و سپس مجدداً برنامه‌ریزی می‌کند. در بافت API جمنای، این حلقه توسط دو مکانیزم کلیدی هماهنگ می‌شود:

  1. فراخوانی توابع: این قابلیت به مدل اجازه می‌دهد داده‌های JSON ساختاریافته‌ای را که نشان می‌دهد کدام توابع خارجی را با چه پارامترهایی می‌خواهد فراخوانی کند، خروجی دهد. این پل ارتباطی بین «فرآیند تفکر» مدل زبانی بزرگ و «لایه عملیاتی» برنامه شماست.
  2. اجرای کد (پایتون در محیط ایزوله): جمنای می‌تواند کد پایتون را تولید کرده و در یک محیط ایزوله امن اجرا کند. این امر برای وظایفی که نیاز به دقت عددی، دستکاری داده‌ها یا تأیید منطقی چندمرحله‌ای دارند که تولید متن خالص ممکن است آن‌ها را به خوبی مدیریت نکند، حیاتی است.

گام ۱: تعریف توابع برای اقدامات خارجی

برای اینکه به یک عامل امکان تعامل با برنامه خاص شما یا منابع داده‌ای‌تان را بدهید، باید امضای توابع را تعریف کنید. فرض کنید عاملی نیاز دارد که وضعیت آب و هوا را بررسی کند و زمان‌های بهینه سفر را محاسبه نماید.

import google.generativeai as genai

# تعریف امضای تابع
def get_weather(location: str):
    # این تابع معمولاً یک API خارجی را فراخوانی می‌کند
    return {"temp_c": 22, "condition": "Sunny"}

def calculate_optimal_time(distance_km: float, speed_kmh: float):
    # این تابع محاسبات لجستیکی پیچیده را انجام می‌دهد
    return {"hours": distance_km / speed_kmh}

# پیکربندی مدل با ابزارهای در دسترس
genai.configure(api_key="YOUR_API_KEY")
model = genai.GenerativeModel(
    'gemini-1.5-pro',
    tools=[get_weather, calculate_optimal_time]
)

گام ۲: فعال‌سازی اجرای کد برای استدلال منطقی

در حالی که فراخوانی توابع اقدامات خارجی را مدیریت می‌کند، اجرای کد محاسبات داخلی را مدیریت می‌کند. هنگام استفاده از ابزار `code_execution`، جمنای می‌تواند اسکریپت‌های پایتون بنویسد تا مسائل ریاضی را حل کند یا جداول داده‌ای ارائه شده در پرامپت را دستکاری نماید.

در اینجا نحوه فعال‌سازی این قابلیت در پیکربندی مدل شما آمده است:

# نکته: در آخرین نسخه SDK، اجرای کد اغلب از طریق تنظیمات ابزار خاص
# یا با استفاده از قابلیت 'code_execution' در صورت در دسترس بودن در منطقه/پلن شما فعال می‌شود.

model_with_code = genai.GenerativeModel(
    'gemini-1.5-pro',
    system_instruction="You are a data analysis agent. Use code execution to verify calculations."
)

# مدل اکنون در صورت مشاهده وظایف ریاضی یا داده‌محور، تصمیم به اجرای کد می‌گیرد
response = model_with_code.generate_content("Analyze this dataset and find the top 3 trends.")
print(response.text)

مثال عملی: عامل ترکیبی (Hybrid Agent)

سناریویی را تصور کنید که کاربر می‌پرسد: «بهترین زمان برای رزرو بلیط پرواز به پاریس با بودجه ۱۰۰۰ دلار چیست و احتمالاً آب و هوا چگونه خواهد بود؟»

عامل به شرح زیر کار می‌کند:

  1. برنامه‌ریزی: مدل دو زیروظیفه را شناسایی می‌کند: بررسی آب و هوا (داده خارجی) و بودجه‌بندی (محاسبه منطقی).
  2. اقدام ۱: تابع `get_weather("Paris")` را فعال می‌کند.
  3. اقدام ۲: یک اسکریپت پایتون را اجرا می‌کند تا تعیین کند آیا ۱۰۰۰ دلار بر اساس داده‌های تاریخی ارائه شده در بافت، هزینه‌های معمول بلیط پرواز را پوشش می‌دهد یا خیر.
  4. مشاهده: مدل JSON را از تابع و خروجی را از محیط ایزوله پایتون دریافت می‌کند.
  5. پاسخ نهایی: هر دو بخش اطلاعات را در یک پاسخ منسجم ترکیب می‌کند: «در حال حاضر دمای پاریس ۲۰ درجه سانتی‌گراد است و آفتابی است. با بودجه ۱۰۰۰ دلاری شما، می‌توانید یک بلیط رده میانی برای پرواز روز سه‌شنبه را رزرو کنید.»

بهترین روش‌ها برای عامل‌های مقاوم

  • توضیحات شفاف: مستندات (Docstrings) توابع شما منبع اصلی حقیقت برای مدل زبانی بزرگ است. در مورد انواع پارامترها و نتایج مورد انتظار صریح باشید.
  • مدیریت خطا: همیشه استثناها را درون کال‌بک‌های تابع خود بگیرید. یک پیام خطای ساختاریافته به مدل زبانی بزرگ برگردانید تا بتواند دوباره تلاش کند یا کاربر را مطلع سازد.
  • محدود کردن پیچیدگی محیط ایزوله: اگرچه اجرای کد جمنای قدرتمند است، کد تولید شده را ساده نگه دارید تا اطمینان حاصل شود که زمان‌های اجرا سریع‌تر و دیباگ کردن آسان‌تر خواهد بود.

نتیجه‌گیری

با بهره‌گیری از ابزارهای فراخوانی توابع و اجرای کد در API جمنای، توسعه‌دهندگان از چت‌بات‌های ایستا فراتر رفته و وارد دنیای عامل‌های خودمختار می‌شوند. این عامل‌ها می‌توانند محیط خود را از طریق APIهای خارجی درک کنند و از طریق کد ایزوله به مسائل پیچیده استدلال کنند. با بلوغ این قابلیت‌ها، توانایی هماهنگ‌سازی چنین جریان‌های کاری چندمرحله‌ای و ابزارمحوری به یک الزام استاندارد برای برنامه‌های هوش مصنوعی سطح سازمانی تبدیل خواهد شد. از کوچک شروع کنید، ابزارهای شفاف تعریف کنید و بگذارید مدل هماهنگ‌سازی را مدیریت کند.

Share: