Вызов функций с помощью API Gemini,Вызов функций с помощью API Gemini

Вызов функций позволяет подключать модели к внешним инструментам и API. Вместо генерации текстовых ответов модель определяет, когда следует вызывать конкретные функции, и предоставляет необходимые параметры для выполнения действий в реальном мире. Это позволяет модели выступать в качестве моста между естественным языком и действиями и данными из реального мира. Вызов функций имеет 3 основных варианта использования:

  • Выполняйте действия: взаимодействуйте с внешними системами с помощью API, например, планируйте встречи, создавайте счета, отправляйте электронные письма или управляйте устройствами умного дома.
  • Расширьте свои знания: получайте доступ к информации из внешних источников, таких как базы данных, API и базы знаний.
  • Расширение возможностей: Используйте внешние инструменты для выполнения вычислений и расширения ограничений модели, например, с помощью калькулятора или для создания диаграмм.

Ниже вы можете ознакомиться с примерами такого использования:

Назначить встречу

В этом примере показано, как определить функцию, которая планирует встречу с участниками в определенное время, позволяя модели анализировать запросы пользователей и возвращать структурированные аргументы для запуска действий во внешних системах.

Python

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 step.type == "function_call":
        print(f"Function to call: {step.name}")