Подсчет токенов для моделей Gemini

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

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

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

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

Обратите внимание, что модели Gemini 1.0 и 1.5 также поддерживали количество «оплачиваемых персонажей» и цены, но поскольку эти модели либо сняты с поддержки, либо скоро будут сняты с поддержки, на этой странице ничего не описывается об оплачиваемых персонажах.

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

  • gemini-2.5-pro
  • gemini-2.5-flash
  • gemini-2.5-flash-lite
  • gemini-2.0-flash-001 (и его автоматически обновляемый псевдоним gemini-2.0-flash )
  • gemini-2.0-flash-lite-001 (и его автоматически обновляемый псевдоним gemini-2.0-flash-lite )
  • gemini-2.0-flash-preview-image-generation

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

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

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

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

Обратите внимание на следующие моменты относительно приведенных выше вариантов:

  • Они не будут учитывать количество входных изображений или длительность видео- или аудиофайлов. Однако количество токенов для каждой из этих модальностей будет коррелировать с этими значениями.
  • Подсчет входных токенов включает в себя подсказку (текст и любые входные файлы), а также любые системные инструкции и инструменты.
  • В количество выходных токенов не входят токены мышления; они указываются в отдельном поле.
  • Дополнительную информацию по каждому типу запроса можно найти далее на этой странице.

Цены на эти опции

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

  • Использование атрибута usageMetadata : этот атрибут всегда возвращается как часть ответа и сам по себе не влечет за собой никаких токенов или взимания платы.

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

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

Подсчет токенов ввода текста

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

Подсчет многоходовых (чатовых) токенов

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

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

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

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

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

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

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

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

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

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

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

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

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