قابلیت تماس با Gemini API، تماس تابع با Gemini API

فراخوانی تابع به شما امکان می‌دهد مدل‌ها را به ابزارها و APIهای خارجی متصل کنید. به جای تولید پاسخ‌های متنی، مدل زمان فراخوانی توابع خاص را تعیین می‌کند و پارامترهای لازم را برای اجرای اقدامات دنیای واقعی فراهم می‌کند. این امر به مدل اجازه می‌دهد تا به عنوان پلی بین زبان طبیعی و اقدامات و داده‌های دنیای واقعی عمل کند. فراخوانی تابع دارای ۳ مورد استفاده اصلی است:

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

می‌توانید نمونه‌هایی از این موارد استفاده را در زیر مرور کنید:

برنامه جلسه

این مثال نشان می‌دهد که چگونه می‌توان تابعی تعریف کرد که جلسه‌ای را با شرکت‌کنندگان در یک زمان مشخص برنامه‌ریزی می‌کند و به مدل اجازه می‌دهد درخواست‌های کاربر را تجزیه و تحلیل کرده و آرگومان‌های ساختاریافته را برای ایجاد اقدامات در سیستم‌های خارجی بازگرداند.

پایتون

from google import genai

schedule_meeting_function = {
    "type": "function",
    "name": "schedule_meeting",
    "description": "Schedules a meeting with specified attendees at a given time and date.",
    "parameters": {
        "type": "object",
        "properties": {
            "attendees": {"type": "array", "items": {"type": "string"}},
            "date": {"type": "string", "description": "Date (e.g., '2024-07-29')"},
            "time": {"type": "string", "description": "Time (e.g., '15:00')"},
            "topic": {"type": "string", "description": "The meeting topic."},
        },
        "required": ["attendees", "date", "time", "topic"],
    },
}

client = genai.Client()

interaction = client.interactions.create(
    model="gemini-3.7-flash",
    input="Schedule a meeting with Bob and Alice for 03/14/2025 at 10:00 AM about Q3 planning.",
    tools=[{"type": "function", **schedule_meeting_function}],
)

for step in interaction.steps:
    if