Fluxio
← Back to the blog

令牌计数端点怎么用:从请求预检到流式用量核对

What tokens costZH

§1 第一步:明确计数端点能回答什么

令牌计数端点适合回答一个具体问题:这份输入交给指定模型后,大约占用多少令牌。它不是生成接口,也不能提前知道回答会有多长。例如,消息计数接口返回输入令牌数,而不是完整请求最终产生的全部用量。([platform.claude.com](https://platform.claude.com/docs/en/api/messages/count_tokens?utm_source=openai))

建议把计数放在请求预检阶段:先组装输入,再判断是否需要压缩,最后发起生成。不要把预检结果直接当作最终账单;官方说明也提醒,预估输入量与生成时实际使用的输入量可能略有差异。([platform.claude.com](https://platform.claude.com/docs/en/build-with-claude/token-counting?q=count_tokens&utm_source=openai))

§2 第二步:先组装完整请求,再提交计数

不要只计算用户刚输入的一句话。对于支持的消息结构,应同时提交系统提示、历史消息、工具定义以及相关图片或文档。消息计数端点支持这些结构化输入,但部分服务端工具和文件来源存在限制,因此必须核对端点支持范围。([platform.claude.com](https://platform.claude.com/docs/en/build-with-claude/token-counting?q=count_tokens&utm_source=openai))

  • – 保留生成请求实际使用的消息顺序和角色。
  • – 将检索片段、工具说明和工具返回结果纳入待检查输入。
  • – 使用最终选定的模型标识,而不是另一个模型的计数结果。

建议在应用内复用同一份请求构建逻辑,分别生成计数载荷和生成载荷,避免预检完成后又追加大段上下文。

§3 第三步:调用对应端点并读取正确字段

使用 Claude Haiku 4.5 时,可以按消息计数接口的请求结构调用 POST /v1/messages/count_tokens,提交模型、消息及适用的系统提示或工具定义,再读取 input_tokens。该端点不创建回答。([platform.claude.com](https://platform.claude.com/docs/en/api/messages/count_tokens?utm_source=openai))

使用 Gemini 2.5 Flash 时,对应方法是 models.countTokens,端点路径采用 /v1beta/models/{模型标识}:countTokens,主要读取 totalTokens。建议在业务层统一保存为“预估输入令牌”,避免把不同供应商的字段名称混用。([ai.google.dev](https://ai.google.dev/api/tokens?utm_source=openai))

如果通过中转服务访问模型,应先确认它是否转发对应计数端点、接受哪种请求结构,以及需要什么鉴权方式。不要仅凭生成接口兼容,就假定计数接口也兼容。

§4 第四步:用输入计数执行上下文预算

拿到结果后,建议建立三项预算:预估输入、计划输出上限和安全余量。把计数作为控制输入长度与模型路由的依据,而不是只在页面上显示一个数字;这也符合官方列出的计数用途。([platform.claude.com](https://platform.claude.com/docs/en/build-with-claude/token-counting?q=count_tokens&utm_source=openai))

具体执行时,可以先移除重复检索片段,再压缩较早的对话,必要时减少附件。任何修改输入的操作完成后,都应重新计数。切换模型时也应重新检查,因为计数取决于传入的模型及其分词方式。([platform.claude.com](https://platform.claude.com/docs/en/build-with-claude/token-counting?q=count_tokens&utm_source=openai))

§5 第五步:只在需要预检时增加计数调用

建议为计数设置触发条件,而不是机械地放在每次生成之前。这样可以将额外请求留给真正影响上下文选择、预算控制或路由决策的场景。

  • – 长文档导入、检索结果明显增多或工具定义发生变化时,执行远程计数。
  • – 长对话接近应用设定的输入阈值时,先计数再决定是否压缩。
  • – 切换模型或调整系统提示后,重新验证代表性请求。
  • – 短小且结构稳定的请求,优先通过抽样检查与实际用量监控验证预算。

还可以缓存完全相同请求的预检结果,但缓存键应包含模型标识和完整输入摘要。这里建议缓存的是应用侧计数结果,不是供应商的提示缓存;官方明确说明,计数本身不会执行提示缓存逻辑。([platform.claude.com](https://platform.claude.com/docs/en/build-with-claude/token-counting?utm_source=openai))

§6 第六步:把计数预检接入流式请求链路

根据提供的服务信息,Fluxio 采用流式优先、按令牌付费的中转模式,适合希望集中管理多模型访问的应用。建议把统一鉴权与流式生成放在接入层,把计数能力检查放在供应商适配层;只有确认目标路由支持后,才开启远程计数预检。

生成结束后,建议保存接口返回的实际用量,并与预估输入量分开记录。输入计数无法预测尚未生成的输出;例如,官方令牌指南明确区分了生成前的输入计数与生成响应中的用量信息。这样既能保留流式体验,也能检查预算策略是否有效。([ai.google.dev](https://ai.google.dev/gemini-api/docs/tokens?authuser=698580186&utm_source=openai))

注册 Fluxio,开始构建流式应用。

Create a Fluxio account →

More from the current