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

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

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

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

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

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

  • gemini-3.1-pro-preview
  • 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-3-pro-image (также известна как Nano Banana Pro)
  • gemini-3.1-flash-image (также известна как Nano Banana 2)
  • gemini-3.1-flash-lite-image (также известна как Nano Banana 2 Lite)
  • gemini-3.1-flash-tts-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-файла токенизируется так же, как изображение.