← Главная

降低 Claude API 成本

LLM 支出会随着用户数量、上下文长度和输出量增长。以下实践可以降低每个成功任务的成本,而无需全面重写产品。

最快的节省方式

Claude API Tech 的价格比 Anthropic 对应官方价格低 50%。兼容应用只需更换 API endpoint 和密钥。 Quick Start →

计算实际负载成本

输入真实请求量和平均 token 用量。计算器会比较所选模型的官方价格与 Claude API Tech 价格。请求数中应包括重试和后台调用。

负载成本计算器

按官方价格

US$1,350.00

每月

Claude API Tech

US$675.00

每月

每月节省

US$675.00

每年节省

US$8,100.00

我们的单次请求成本US$0.00675

估算使用所选模型的当前价格,不包含 prompt caching。它用于判断成本规模,不代表精确到账单金额。

价格页面详细说明了输入、输出和缓存 token 的区别、总成本如何形成,以及如何计算单次请求的费用。 Claude API 费用计算方式

先收集七天的 usage 数据

总账单无法说明钱花在了哪里。请把 usage 与具体产品功能一起记录,例如客服回复、文档处理、agent 步骤或报告生成。一周的数据通常就能看出哪个功能最耗预算。

TypeScript · 按产品功能记录成本
const startedAt = performance.now();
const message = await anthropic.messages.create({
  model,
  max_tokens,
  messages
});

analytics.track("llm_request", {
  feature: "support_reply",
  model: message.model,
  input_tokens: message.usage.input_tokens,
  output_tokens: message.usage.output_tokens,
  latency_ms: Math.round(performance.now() - startedAt)
});

找到最大的成本来源

不要同时重写所有 prompt。先按成本对产品功能排序,从最高的一项开始。下面的表格可以帮助选择第一个实验。

数据表现成本增长位置首先检查
RAG 或聊天的 prompt 很大input_tokensRetrieval、历史记录、prompt caching
回答比界面实际需要的更长output_tokensmax_tokens 和响应格式
一次用户操作产生很多调用retries 或 agent loopBackoff、stop conditions、重复请求
所有任务都使用同一个模型每个 token 的价格把简单任务路由到更便宜的模型

需要优化的部分

1. 降低相同 token 的价格

迁移到 Claude API Tech 后,无需更改模型、prompt 或 token 用量,即可将 Claude API 成本降低 50%。注册即可获取兼容的 API 密钥。

降低 50% 的成本

2. 根据任务选择模型

不要把分类、字段提取和简单转换都交给最昂贵的模型。使用自己的评测集验证质量,仅在确实能改善结果时使用更强的模型。

TypeScript · 模型路由
const model = task.requiresDeepReasoning
  ? "claude-sonnet-5"
  : "claude-fable-5";

const response = await anthropic.messages.create({
  model,
  max_tokens: task.requiresLongAnswer ? 1200 : 300,
  messages
});

3. 删除不必要的上下文

不要在每次请求中发送完整对话和所有文档。只保留相关片段、早期消息摘要以及当前步骤需要的指令。

发送前缩短上下文

未优化

  • 完整历史
  • 所有文档
  • 重复指令

≈ 12,400 个输入 token

优化后

  • 简短摘要
  • 3 个相关片段
  • 已缓存的指令

≈ 3,100 个输入 token

本例输入 token 减少 75%

4. 使用 prompt caching

缓存较长的系统指令和重复上下文。缓存读取价格为普通输入价格的 0.1 倍,因此重复 prompt 部分最多可节省 90%。

TypeScript · prompt caching
const response = await anthropic.messages.create({
  model: "claude-sonnet-5",
  max_tokens: 500,
  system: [{
    type: "text",
    text: policyAndInstructions,
    cache_control: { type: "ephemeral" }
  }],
  messages: [{
    role: "user",
    content: relevantChunks.join("\n\n")
  }]
});

5. 限制输出长度

设置合理的 max_tokens,并要求模型使用所需格式回答。流式输出可以改善首 token 时间,但本身不会减少计费 token。

TypeScript · 输出限制与 streaming
const stream = anthropic.messages.stream({
  model: "claude-sonnet-5",
  max_tokens: 300, // 响应上限
  system: "仅返回包含 summary 和 risk_level 字段的精简 JSON,不要使用 Markdown。",
  messages
});

for await (const event of stream) {
  console.log(event);
}

const message = await stream.finalMessage();
console.log(message.usage.output_tokens); // 实际生成的 token

6. 避免重试风暴

只重试临时错误,并使用 exponential backoff。不要因为前端错误或自身服务超时而重复已成功的模型请求。

进行一次受控测试

选择一个高成本功能,在修改前后运行相同的请求集。比较成本、输出质量、latency 和错误率。结果可以接受后,再迁移下一个使用场景。

  • 记录当前模型、prompt 和每个成功结果的平均成本。
  • 保存 30 到 100 个不含个人数据的典型请求。
  • 只修改一个变量:endpoint、模型、上下文、caching 或输出限制。
  • 使用同一请求集比较两个版本。
  • 只有在不损害产品质量时才保留优化。

下一步

先比较模型价格,然后通过新 endpoint 测试一个生产场景。在迁移其他流量之前,评估质量、latency 和实际成本。