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

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

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

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

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

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

  • gemini-3-pro-preview
  • gemini-3-pro-image-preview
  • 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 .

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

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

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

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

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

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

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

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

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

Подсчет токенов для многоходовых (чат) операций

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

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

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

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

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

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

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

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

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

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

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

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

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