切换外观
统计 Anthropic 输入 Token
POST/messages/count_tokens接口说明
由 Token Factory 在本地对 Anthropic 消息输入做保守 Token 预估,不调用供应商;成功体保持官方 input_tokens 字段,结果只用于请求前预算,不参与计费。
请求
方法:
POST鉴权:
x-api-key: ${TOKENFACTORY_API_KEY}或Authorization: Bearer ${TOKENFACTORY_API_KEY}(二选一)
请求头
| 名称 | 必填 | 值或类型 | 说明 |
|---|---|---|---|
x-api-key | 二选一 | ${TOKENFACTORY_API_KEY} | Anthropic 官方 SDK 使用的 API Key 请求头 |
Authorization | 二选一 | Bearer ${TOKENFACTORY_API_KEY} | Bearer API Key 请求头 |
Content-Type | 是 | application/json | 请求体媒体类型 |
anthropic-version | 否 | string (date) | Anthropic API 版本;可选,缺省时按 2023-06-01 处理,官方 SDK 会自动发送。显式值须为有效的 YYYY-MM-DD 日期,原样交给供应商判断版本支持;格式或日期无效返回 400 invalid_request_error。 |
anthropic-beta | 否 | string | 可选的 Anthropic Beta 功能列表;官方 SDK 按所用功能发送。 |
anthropic-user-profile-id | 否 | string | 当前不支持;为遵守用户 PII 不进入 AI 上下文的边界,发送该请求头即返回 400 invalid_request_error。 |
路径参数:无
查询参数:无
请求字段
| 字段 | 类型 | 必填 | 说明 | 示例或约束 |
|---|---|---|---|---|
messages | object[] | 是 | 待预估的 Anthropic 消息数组,每项必须包含 role 与 content;可含图片与内联文档;document 的 source.type=text、media_type=text/plain 时按 data 正文估算。 | 示例:[{"content":[{"text":"解释图片和文档","type":"text"},{"source":{"data":"...","media_...;最多:100000 项 |
messages[].content | string 或 object[] | 是 | 消息正文;必须是字符串或内容块数组。 | 示例:[{"text":"解释图片和文档","type":"text"},{"source":{"data":"...","media_type":"image...;形式:string 或 object[] |
messages[].role | string | 是 | 消息角色;system 仅用于官方支持模型的中途系统消息,并须遵守官方位置规则;初始系统提示使用顶层 system。 | 示例:"user";可选值:"user"、"assistant"、"system" |
model | string | 是 | 要用于计数的模型 ID。 | 示例:"YOUR_MODEL_ID" |
output_config | object | 否 | 参与本地 Token 预估的结构化输出与 effort 设置。 | 示例:{"effort":"high","format":{"schema":{"properties":{"answer":{"type":"string"}... |
system | string 或 object[] | 否 | 参与本地 Token 预估的系统提示词或内容块数组。 | 示例:[{"cache_control":{"type":"ephemeral"},"text":"请准确回答","type":"text"}];形式:string 或 object[] |
thinking | object | 否 | 参与本地 Token 预估的 Thinking 设置。 | 示例: |
tool_choice | object | 否 | 参与本地 Token 预估的工具选择设置。 | 示例: |
tools | object[] | 否 | 参与本地 Token 预估的工具定义数组,可为 null;平台追加确定性的隐式 system/toolset 预算。 | 示例:[{"cache_control":{"ttl":"5m","type":"ephemeral"},"description":"查询指定城市天气","i...;可为 null |
请求报文
媒体类型:application/json
json
{
"cache_control": {
"ttl": "5m",
"type": "ephemeral"
},
"messages": [
{
"content": [
{
"text": "解释图片和文档",
"type": "text"
},
{
"source": {
"data": "...",
"media_type": "image/png",
"type": "base64"
},
"type": "image"
},
{
"source": {
"data": "...",
"media_type": "application/pdf",
"type": "base64"
},
"type": "document"
}
],
"role": "user"
}
],
"metadata": {
"user_id": "usr_opaque_9f4c2a"
},
"model": "YOUR_MODEL_ID",
"output_config": {
"effort": "high",
"format": {
"schema": {
"properties": {
"answer": {
"type": "string"
}
},
"required": [
"answer"
],
"type": "object"
},
"type": "json_schema"
}
},
"service_tier": "auto",
"stop_sequences": [
"<END>"
],
"system": [
{
"cache_control": {
"type": "ephemeral"
},
"text": "请准确回答",
"type": "text"
}
],
"thinking": {
"budget_tokens": 1024,
"type": "enabled"
},
"tool_choice": {
"type": "auto"
},
"tools": [
{
"cache_control": {
"ttl": "5m",
"type": "ephemeral"
},
"description": "查询指定城市天气",
"input_schema": {
"properties": {
"city": {
"type": "string"
}
},
"required": [
"city"
],
"type": "object"
},
"name": "lookup_weather"
}
]
}响应
成功状态:200
响应头
| 名称 | 值或类型 | 说明 |
|---|---|---|
Content-Type | application/json | 响应媒体类型 |
request-id | string | Token Factory 独立生成的平台请求编号;Anthropic 错误体的 request_id 与其相同。 |
x-request-id | string | Token Factory 独立生成的平台请求编号,与 request-id 相同。 |
x-tokenfactory-token-estimate | string | Token Factory 本地预估算法版本,当前为 o200k-heuristic-v2。 |
响应字段
Token Factory 本地保守预估结果;成功体保持 Anthropic Count Tokens 字段。 下表完整列出当前公开协议明确声明的字段;开放扩展只允许未声明的附加字段,不会放宽已声明字段的必填、类型或枚举约束。
| 字段 | 类型 | 必填 | 说明 | 示例或约束 |
|---|---|---|---|---|
input_tokens | integer (int64) | 是 | 平台本地保守预估的输入 Token 数;不等同于供应商 Usage 或计费事实。 | 示例:47;最小值:0 |
返回报文
媒体类型:application/json
json
{
"input_tokens": 47
}错误
| 适用完整地址 | 状态 | 错误码 | 常见触发 | 重试 | 建议动作 | 结果风险 |
|---|---|---|---|---|---|---|
https://api.tokenfactory.cn/anthropic/v1/messages/count_tokens | 401 | invalid_api_key | x-api-key 与 Bearer API Key 均缺失、格式错误、不可用或账户未实名 | 否 | 检查 x-api-key 或 Bearer API Key、Key 状态与实名状态 | 无 |
https://api.tokenfactory.cn/anthropic/v1/messages/count_tokens | 404 | model_not_found | 模型不存在、未上架或当前入口不可用 | 否 | 调用模型列表并改用当前入口可用模型 | 无 |
https://api.tokenfactory.cn/anthropic/v1/messages/count_tokens | 413 | request_too_large | 请求体超过平台接收上限 | 否 | 缩小请求体后重试 | 无 |
https://api.tokenfactory.cn/anthropic/v1/messages/count_tokens | 400 | invalid_request_error | 请求参数或请求体缺字段、格式错误或不受支持 | 否 | 修正请求后重试 | 无 |
https://api.tokenfactory.cn/anthropic/v1/messages/count_tokens | 500 | internal_error | 平台内部出现未预期错误 | 视情况 | 确认未收到有效结果并记录请求时间后再决定是否重试 | 中到高 |
https://api.tokenfactory.cn/anthropic/v1/messages/count_tokens | 405 | method_not_allowed | 请求方法不是该公开地址允许的方法 | 否 | 改用文档列出的 HTTP 方法 | 无 |
https://api.tokenfactory.cn/anthropic/v1/messages/count_tokens | 415 | unsupported_media_type | Content-Type 与该公开地址要求的媒体类型不一致 | 否 | 按文档发送正确 Content-Type | 无 |
错误返回报文
适用完整地址
https://api.tokenfactory.cn/anthropic/v1/messages/count_tokens
HTTP 400;Content-Type: application/json;响应头:request-id: string、x-request-id: string
json
{
"error": {
"message": "请求参数或请求体缺字段、格式错误或不受支持",
"type": "invalid_request_error"
},
"request_id": "req_0123456789abcdef0123456789abcdef",
"type": "error"
}限制与计费
| 适用完整地址 | 限制或计费说明 |
|---|---|
https://api.tokenfactory.cn/anthropic/v1/messages/count_tokens | 由 Token Factory 使用版本化启发式算法在本地保守预估,不调用供应商或供应路线。 只鉴权,不检查或扣减余额。 纯文本 messages/system 以对应模型实际输入 Token 偏差约 10% 以内为工程目标,但不是逐请求保证;模型专有或其他 tokenizer 仍可能偏离,Thinking、Tools 与多模态不在该目标内。 Anthropic Tools 除可见 JSON 计数外,依工具类型追加确定性的隐式 system/toolset 预算;不同模型的隐藏开销下误差可能明显大于 10%。 图片和文件/PDF 使用固定偏高的分层占位预算,再与其他基础值统一增加 10%;这些预算是启发式而非严格上界,高压缩多页 PDF 仍可能低估。 URL/file_id 不抓取内容;document 的 source.type=text、media_type=text/plain 时,data 按可见正文计数;未知可选字段的可见结构和文本也会参与计数。 messages 必须是数组且每项包含 role 与 content;tools 必须是数组或 null。 预估值只用于请求前上下文预算,不得作为账单、余额、套餐用量或供应商 Usage。 |
相关说明
这是平台当前可用模型列表;只鉴权、不计费,可用模型会随所用完整地址和上架状态变化。