Как использовать инструменты с Gemini API

Инструменты расширяют возможности моделей Gemini, позволяя им выполнять действия в реальном мире, получать доступ к информации в реальном времени и выполнять сложные вычислительные задачи. Модели могут использовать инструменты как в стандартных взаимодействиях типа "запрос – ответ", так и в сеансах потоковой передачи в реальном времени с помощью Live API.

Инструменты – это определенные функции (например, Google Поиск или выполнение кода), которые модель может использовать для ответа на запросы. Gemini API предоставляет набор полностью управляемых встроенных инструментов, но вы также можете определить собственные инструменты с помощью вызова функций.

Чтобы создать многоступенчатые системы, ориентированные на цели, ознакомьтесь с обзором агентов.

Доступные встроенные инструменты

Инструмент Описание Примеры использования
Google Поиск Обосновывать ответы текущими событиями и фактами из интернета, чтобы уменьшить количество галлюцинаций. Отвечать на вопросы о недавних событиях, проверять факты по разным источникам.
Google Карты Создавайте помощников с поддержкой геолокации, которые могут находить места, строить маршруты и предоставлять подробную информацию о местности. Планирование маршрутов с несколькими остановками, поиск местных компаний по критериям пользователя.
Выполнение кода Разрешите модели писать и запускать код на Python, чтобы решать математические задачи или точно обрабатывать данные. Решение сложных математических уравнений, точная обработка и анализ текстовых данных.
Контекст URL Указывать модели, какой контент с определенных веб-страниц или из документов нужно прочитать и проанализировать. Отвечать на вопросы на основе определенных URL или документов, извлекать информацию с разных веб-страниц.
Использование компьютера (предварительная версия) Разрешите Gemini просматривать экран и генерировать действия для взаимодействия с интерфейсами веб-браузеров (выполнение на стороне клиента). Автоматизация повторяющихся рабочих процессов в интернете, тестирование пользовательских интерфейсов веб-приложений.
Поиск файлов Индексируйте и ищите собственные документы, чтобы включить генерацию с дополненной выборкой (RAG). Поиск по техническим руководствам, ответы на вопросы по собственным данным.

Подробную информацию о стоимости отдельных инструментов можно найти на странице с ценами.

Как работает выполнение инструментов

Инструменты позволяют модели запрашивать действия во время разговора. Процесс зависит от того, встроенный инструмент (управляемый Google) или пользовательский (управляемый вами).

Встроенный инструмент

При использовании встроенных инструментов (Google Поиска, Google Карт, URL-контекста, поиска файлов и выполнения кода) весь процесс происходит в рамках одного вызова API:

  1. Вы отправляете запрос: "Чему равен квадратный корень из последней цены акции GOOG?"
  2. Gemini решает, что ему нужны инструменты, и запускает их на серверах Google (например, ищет цену акций, а затем выполняет код Python, чтобы рассчитать квадратный корень).
  3. Gemini отправляет окончательный ответ, основанный на результатах работы инструмента.

Процесс работы с пользовательскими инструментами (вызов функций)

В случае с пользовательскими инструментами и использованием компьютера выполнение обрабатывает ваше приложение:

  1. Вы отправляете запрос вместе с объявлениями функций (инструментов).
  2. Gemini может отправить обратно структурированный JSON, чтобы вызвать определенную функцию (например, {"name": "get_order_status", "args": {"order_id": "123"}}), всегда с уникальным id.
  3. Вы выполняете функцию в своем приложении или среде.
  4. Вы отправляете результаты функции с тем же id, что и у вызова функции, обратно в Gemini.
  5. Gemini использует результаты, чтобы сгенерировать окончательный ответ или вызвать другой инструмент.

Подробную информацию вы найдете в руководстве по вызову функций.

Как сочетать встроенные и специальные инструменты

Для запросов, в которых сочетаются встроенные и пользовательские инструменты (вызовы функций), модель использует циркуляцию контекста инструментов, чтобы координировать выполнение в разных средах.

  1. Вы отправляете запрос и указываете встроенные инструменты и специальные функции, которые хотите включить, установив флажок для поддержки комбинирования.
  2. Gemini выполняет встроенные инструменты и уступает пользователю, если генерируются какие-либо вызовы функций на стороне клиента (что выполняется первым, зависит от запроса и решения модели). Он возвращает ответ, содержащий:
    • Подтверждение вызова инструмента
    • Результаты ответа инструмента (могут быть указаны после JSON, если модель сгенерировала два параллельных вызова функции).
    • Структурированный JSON для вызова функции
    • Зашифрованные подписи мыслей для сохранения контекста
  3. Вы выполняете функцию в своем приложении или среде.
  4. Вы возвращаете все части ответа Gemini, а также результаты вызова функции.
  5. Gemini генерирует окончательный ответ, используя весь объединенный контекст.

Ознакомьтесь с руководством по комбинированию инструментов, чтобы узнать, как включить поддержку комбинирования встроенных и пользовательских инструментов, а также посмотреть примеры передачи контекста.

Структурированные выходные данные и вызов функций

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

Структурированные выходные данные с инструментами

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

Примеры кода можно найти в разделе Структурированные ответы с использованием инструментов.