Как подсчитывать токены для моделей Gemini

Модели Gemini обрабатывают входные и выходные данные в единицах, называемых токенами.

Токены могут быть как отдельными символами, например z, так и целыми словами, например cat. Длинные слова разбиваются на несколько токенов. Набор всех токенов, используемых моделью, называется словарем, а процесс разбиения текста на токены – токенизацией.

Для моделей Gemini один токен эквивалентен примерно четырем символам. 100 токенов – это примерно 60–80 слов на английском языке.

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

Поддерживаемые модели

  • gemini-4-argon
  • gemini-3.8-flash (и более старые версии gemini-3.7-flash, gemini-3.6-flash и gemini-3.5-flash)
  • gemini-3.5-flash-lite (и более старый gemini-3.1-flash-lite)
  • gemini-nano-banana-2.1 (Nano Banana 2.1)
  • gemini-3.1-flash-image (Nano Banana 2)
  • gemini-3.1-flash-lite-image (Nano Banana 2 Lite)
  • gemini-3-pro-image (Nano Banana Pro)
  • gemini-3.1-flash-tts-preview

gemini-3.1-pro-preview и устаревшие модели Gemini 2.5 общего назначения и для генерации изображений также поддерживают эту функцию.

Варианты подсчета токенов

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

Проверить количество токенов только для запросов (перед отправкой модели).
Вызовите countTokens с входными данными запроса, прежде чем отправлять его в модель. Возвращаемое значение:
  • total_tokens – количество токенов только во входных данных.
Проверьте количество токенов в запросах и ответах.
Получите доступ к атрибуту usageMetadata объекта ответа. К ним относятся:
  • prompt_token_count – количество токенов только во входных данных.
  • candidates_token_count – количество токенов только в выходных данных (не включает токены мышления).
  • thoughts_token_count – количество токенов мышления, использованных для генерации ответа.
  • total_token_count – общее количество токенов как для входных, так и для выходных данных (включая токены мышления).

При потоковой передаче атрибут usageMetadata появляется только в последнем фрагменте потока. Для промежуточных фрагментов это значение равно nil.

Обратите внимание на следующее:

  • Они не будут учитывать количество входных изображений или количество секунд во входных видео- или аудиофайлах. Однако количество токенов для каждого из этих типов данных будет коррелировать с этими значениями.
  • Количество входных токенов включает запрос (текст и любые входные файлы), а также любые системные инструкции и инструменты.
  • В число выходных токенов не входят токены мышления. Они указываются в отдельном поле.
  • Ознакомьтесь с дополнительной информацией по каждому типу запроса ниже.
  • Gemini Live API моделей не поддерживают countTokens. Кроме того, Firebase AI Logic пока не поддерживает атрибут usageMetadata в ответе от моделей Live API, но скоро это изменится.

Цены для этих вариантов

  • Вызов countTokens: вызов countTokens (Count Tokens API) бесплатный. Максимальная квота для Count Tokens API составляет 3000 запросов в минуту.

  • Использование атрибута usageMetadata. Этот атрибут всегда возвращается в ответе и не требует токенов или оплаты.

Дополнительная информация

Ниже приведена дополнительная информация о работе с определенными типами запросов.

Подсчет токенов в текстовом запросе

Дополнительная информация отсутствует.

Как подсчитать токены в многоходовом чате

При вызове countTokens в чате учитывайте следующее:

  • Если вы вызовете countTokens с историей чата, он вернет общее количество токенов для обеих ролей в чате (total_tokens).
  • Чтобы понять, насколько длинной будет следующая реплика, добавьте ее в историю при вызове countTokens.

Подсчет входных токенов в мультимодальных запросах

Обратите внимание на следующие моменты, касающиеся подсчета токенов при мультимодальном вводе:

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

Входные файлы изображений

Входные файлы изображений преобразуются в токены в зависимости от их размеров:

  • Изображения, у которых обе стороны не превышают 384 пикселя, считаются как 258 токенов.
  • Если изображение больше по одному или обоим измерениям, оно обрезается и масштабируется до фрагментов размером 768 x 768 пикселей. Каждый фрагмент считается за 258 токенов.

Входные видео- и аудиофайлы

Входные видео- и аудиофайлы преобразуются в токены по следующим фиксированным тарифам:

  • Видео: 263 токена в секунду.
  • Аудио: 32 токена в секунду.

Входные файлы документов (например, PDF)

Входные PDF-файлы обрабатываются как изображения, поэтому каждая страница PDF токенизируется так же, как изображение.