Gemini 模型以称为 token 的单位处理输入和输出。
词元可以是单个字符(例如 z
),也可以是整个字词(例如 cat
)。长字词会被拆分为多个词元。模型使用的所有令牌的集合称为词汇表,将文本拆分为令牌的过程称为令牌化。
对于 Gemini 模型,一个 token 相当于大约 4 个字符。 100 个 token 相当于大约 60-80 个英文单词。
每个模型具有在提示和回答中可以处理的词元数上限。了解提示的词元数有助于您了解是否已超出此限制。此外,请求的费用部分取决于输入和输出 token 的数量,因此了解如何计算 token 数量会很有帮助。
请注意,Gemini 1.0 和 1.5 模型也支持“可计费字符”数量和价格,但由于这些模型已停用或即将停用,因此本页未介绍任何有关可计费字符的内容。
支持的模型
gemini-2.5-pro
gemini-2.5-flash
gemini-2.5-flash-lite-preview-06-17
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
用于统计令牌的选项
Gemini API 的所有输入和输出(包括文本、图片文件和其他非文本模态)都会进行分词。以下是用于统计 token 的选项:
- 检查仅限请求的令牌数量(在将请求发送给模型之前)。
- 在将请求发送到模型之前,使用请求的输入调用
countTokens
。此函数会返回:total_tokens
:仅限输入的 token 数
- 检查请求和回答的词元数。
- 在响应对象上使用
usageMetadata
属性。 其中包括:prompt_token_count
:仅输入的 token 数candidates_token_count
:仅输出的 token 数(不包括思考 token)thoughts_token_count
:用于生成回答的任何思考 token 的 token 数total_token_count
:输入和输出(包括任何思考 token)的 token 总数
在流式输出时,
usageMetadata
属性仅出现在流的最后一个块中。对于中间块,值为nil
。
请注意上述选项的以下几点:
- 它们不会统计输入图片的数量,也不会统计视频或音频输入文件中的秒数。不过,每种模态的令牌数量将与这些值相关联。
- 输入令牌数包括提示(文本和任何输入文件)以及任何系统指令和工具。
- 输出词元数不包括任何思考词元;这些词元在单独的字段中提供。
- 请参阅本页面后面的与每种类型的请求相关的其他信息。
这些选项的价格
调用
countTokens
:调用countTokens
(Count Tokens API)不会产生任何费用。Count Tokens API 的最大配额为每分钟 3,000 个请求 (RPM)。使用
usageMetadata
属性:此属性始终作为响应的一部分返回,不会产生任何令牌或费用。
其他信息
下面提供了有关处理特定类型请求的一些其他信息。
统计文本输入 token
无其他信息。
统计多轮(聊天)token
使用聊天功能时,请注意以下有关调用 countTokens
的事项:
- 如果您使用聊天记录调用
countTokens
,则会返回聊天中两个角色的总令牌数 (total_tokens
)。 - 如需了解下一个对话轮次的大小,您需要在调用
countTokens
时将其附加到历史记录中。
统计多模态输入 token
请注意以下几点关于计算包含多模态输入的令牌数的事项:
- 您可以选择分别对文本和文件调用
countTokens
。 - 无论您是以内嵌数据还是使用网址提供文件,这两种令牌计数选项都会得出相同的令牌数量。
图片输入文件
图片输入文件会根据其尺寸转换为 token:
- 如果图片输入的两个维度均小于或等于 384 像素,则每张图片按 258 个 token 计算。
- 如果图片在某个维度或两个维度上都比较大,系统会根据需要将每张图片剪裁并缩放到 768x768 像素的图块,然后将每个图块计为 258 个 token。
视频和音频输入文件
视频和音频输入文件会以以下固定费率转换为 token:
- 视频:每秒 263 个 token
- 音频:每秒 32 个 token
文档(例如 PDF)输入文件
PDF 输入文件被视为图片,因此 PDF 文件的每页都会以与图片相同的方式进行词元化。