Инструменты расширяют возможности моделей Gemini, позволяя им взаимодействовать с окружающим миром, получать доступ к информации в реальном времени и выполнять сложные вычислительные задачи. Модели могут использовать инструменты как в стандартных взаимодействиях типа «запрос-ответ», так и в сеансах потоковой передачи данных в реальном времени с помощью Live API .
Инструменты — это конкретные возможности (например, поиск Google или выполнение кода), которые модель может использовать для ответа на запросы. API Gemini предоставляет набор полностью управляемых встроенных инструментов, или вы можете определить собственные инструменты с помощью вызова функций .
Для построения многоэтапных, целеориентированных систем см. раздел «Обзор агентов» .
Доступные встроенные инструменты
| Инструмент | Описание | Варианты использования |
|---|---|---|
| Поиск Google | Использование информации из интернета и актуальных событий для уменьшения галлюцинаций. | - Ответы на вопросы о недавних событиях - Проверка фактов с использованием различных источников. |
| Google Карты | Создавайте голосовых помощников, учитывающих местоположение, которые смогут находить места, прокладывать маршруты и предоставлять подробную информацию о местной обстановке. | - Планирование туристических маршрутов с несколькими остановками - Поиск местных предприятий на основе критериев пользователя |
| Выполнение кода | Позвольте модели писать и запускать код на Python для точного решения математических задач или обработки данных. | Решение сложных математических уравнений - Точная обработка и анализ текстовых данных |
| Контекст URL | Укажите модели, как считывать и анализировать контент с определенных веб-страниц или документов. | - Ответы на вопросы, основанные на конкретных URL-адресах или документах. — Получение информации с разных веб-страниц |
| Использование компьютера (предварительный просмотр) | Настройте Gemini на отображение экрана и генерацию действий для взаимодействия с пользовательскими интерфейсами веб-браузера (выполнение на стороне клиента). | - Автоматизация повторяющихся веб-процессов - Тестирование пользовательских интерфейсов веб-приложений |
| Поиск файлов | Для включения функции расширенного поиска и индексирования собственных документов (Retrieval Augmented Generation, RAG) необходимо использовать функцию индексирования и поиска. | - Поиск технических руководств - Ответы на вопросы, основанные на конфиденциальных данных. |
Подробную информацию о стоимости конкретных инструментов см. на странице «Цены» .
Как работает выполнение инструментов
Инструменты позволяют модели запрашивать действия во время диалога. Процесс отличается в зависимости от того, является ли инструмент встроенным (управляемым Google) или пользовательским (управляемым вами).
Встроенный поток инструментов
Для встроенных инструментов (Поиск Google, Карты Google, Контекст URL, Поиск файлов, Выполнение кода) весь процесс происходит в рамках одного вызова API:
- Вы отправляете запрос: "Какому квадратному корню равен последний курс акций GOOG?"
- Gemini решает, что ей нужны инструменты, и запускает их на серверах Google (например, ищет цену акций, а затем запускает код на Python для вычисления квадратного корня).
- Gemini отправляет окончательный ответ, основанный на результатах работы инструмента.
Пользовательский алгоритм работы инструмента (вызов функций)
Для пользовательских инструментов и использования компьютера выполнением занимается ваше приложение:
- Вы отправляете приглашение вместе с объявлениями функций (инструментов).
- Gemini может отправлять обратно структурированный JSON для вызова определенной функции (например,
{"name": "get_order_status", "args": {"order_id": "123"}}), всегда с уникальнымid. - Вы выполняете эту функцию в своем приложении или среде.
- Вы отправляете результаты выполнения функции с тем же
id, что и при вызове функции, обратно в Gemini. - Gemini использует полученные результаты для формирования окончательного ответа или вызова другого инструмента.
Подробнее см. в руководстве по вызову функций .
Сочетание встроенных и пользовательских инструментов в рабочем процессе.
Для запросов, объединяющих встроенные и пользовательские инструменты (вызовы функций), модель использует циркуляцию контекста инструментов для координации выполнения в различных средах:
- Вы отправляете приглашение и указываете встроенные инструменты и пользовательские функции, которые хотите включить, устанавливая флаг для включения поддержки комбинаций.
- Gemini выполняет встроенные инструменты и уступает место пользователю, если генерируются какие-либо вызовы функций на стороне клиента (какая функция выполнится первой, зависит от запроса и решения модели). В ответ он отправляет следующее:
- Подтверждение вызова инструмента
- Результаты ответа инструмента (они могут отображаться после JSON, если модель сгенерировала два параллельных вызова функции).
- Структурированный JSON для вызова вашей функции
- Зашифрованные подписи мыслей для сохранения контекста
- Вы выполняете эту функцию в своем приложении или среде.
- Вы возвращаете все части ответа Gemini, а также результаты вызова вашей функции.
- Gemini формирует окончательный ответ, используя весь объединенный контекст.
Ознакомьтесь с руководством по сочетаниям инструментов , чтобы узнать, как включить поддержку сочетаний встроенных и пользовательских инструментов, а также примеры циркуляции контекста.
Структурированные выходные данные против вызова функций
Gemini предлагает два метода генерации структурированных выходных данных. Используйте вызов функций, когда модели необходимо выполнить промежуточный шаг, подключившись к вашим собственным инструментам или системам данных. Используйте структурированные выходные данные , когда вам строго необходимо, чтобы окончательный ответ модели соответствовал определенной схеме, например, для отображения пользовательского интерфейса.
Структурированные результаты с использованием инструментов
Вы можете комбинировать структурированные выходные данные со встроенными инструментами, чтобы гарантировать, что ответы модели, основанные на внешних данных или вычислениях, по-прежнему соответствуют строгой схеме.
Примеры кода см. в разделе «Структурированные выходные данные с помощью инструментов» .