> 原始 Markdown 孪生体（构建期从源 Markdown 生成）。渲染页：https://docs.gatellm.io/zh-CN/usecases/cost-reduction · 文档索引：https://docs.gatellm.io/zh-CN/llms.txt


# 降低调用成本

网关侧的成本主要来自三处：上游 token 计费、不必要的响应内容、日志与日志体的磁盘占用。本页给出几条互不冲突的手段，可叠加使用。

## 成本从哪里来

| 成本来源 | 量级 | 降本手段 |
|---------|------|---------|
| 上游 token 计费 | 最大 | 命中上游提示缓存、按复杂度分级路由到更便宜的模型 |
| 多模态响应体 | 中 | 裁剪不需要的图片/音频内容 |
| 日志与日志体磁盘 | 小但持续 | 调小留存期与 body 捕获上限 |

## 命中上游提示缓存

Anthropic、OpenAI 等上游对**重复的 system / 前缀内容**有 prompt cache 折扣。网关把同一调用方的请求**粘到同一把上游 key**（确定性加权分布 + 粘性绑定），保证上游看到的 prompt cache 前缀稳定。

- 多 key 上游不要把同一调用方打散到不同 key，否则每把 key 都要重新建立缓存。详见 [上游与模型字段](/zh-CN/reference/upstreams-models-fields.md) 的「多密钥与权重」。
- 经 [Claude Code 经网关](/zh-CN/quickstart/claude-code-via-gateway.md) 接入时，用 `request_payload` 表达式把 Claude Code 注入的 `x-claude-code-session-id` 头写进上游私有缓存键字段（`prompt_cache_key`），让同一会话的多次请求命中同一缓存——这不是脚本，是请求体规则。见该页[注入会话缓存键](/zh-CN/quickstart/claude-code-via-gateway.md#session-cache-key) 一节。

## 按输入复杂度分级路由

「简单请求走便宜模型、复杂请求走强模型」用 `request_payload` 的 `switch-route` 规则实现——它在协议翻译前按**客户端**请求形状判定，命中就把请求改投到指定模型，**不读 body 内容、不占内存**，可跨协议。

示例：请求里没有图片块时路由到便宜模型，有图片才走多模态强模型。规则只做结构/小值检查，配置方式见 [上游与模型字段](/zh-CN/reference/upstreams-models-fields.md) 的 `switch-route` 模式。选型决策见 [请求改写与路由：怎么选](/zh-CN/practices/routing-and-transform.md)。

## 裁剪不必要的响应内容

用响应脚本剥离图片、音频等大块内容，只留文本。典型场景与脚本见 [用脚本做响应脱敏](/zh-CN/howto/script-response-redact.md) 的「剥离图片内容」一节。

## 日志与日志体的留存成本

- body 捕获跟随准入上限（ADR-005）：请求体按 `max_request_size_mb`、响应体按 `max_response_body_mb`。调小可降磁盘占用，但大 body 会被截断。
- `log_retention_days` 控制保留天数；调小（如 3 天）加速清理。
- 流式 body 的磁盘占用由 `stream_body_max_disk_mb` 控制。

字段语义见 [日志与日志体存储](/zh-CN/reference/logs-and-body-storage.md)。

## 效果怎么验证

- 按 token 用量看：控制台 → **统计**，按模型 / 访问密钥维度看 token 趋势。见 [统计](/zh-CN/console/statistics.md)。
- 按费用看：[定价与计费](/zh-CN/howto/setup-pricing-and-billing.md) 配置价格快照后，月度账单给出按模型/密钥的费用汇总。
- 按缓存命中看：上游响应里的 `cache_read_input_tokens` / `cached_tokens` 字段会在日志详情里体现。

## 常见问题

**Q：switch-route 会不会拖慢请求？**
不会。它在协议翻译前按结构判定，不读二进制内容字节，大请求体仍走磁盘暂存，不占内存。

**Q：响应脱敏脚本会拖慢流式响应吗？**
响应脚本在响应体上运行。流式响应在首块发出后不再重试，脚本对每个块处理。大 body 上避免做纯路由决策式的重逻辑，见 [脚本性能与内存](/zh-CN/practices/script-performance.md)。

**下一步**：[做到高可用](/zh-CN/usecases/high-availability.md) 看容灾；[请求改写与路由：怎么选](/zh-CN/practices/routing-and-transform.md) 看选型；[定价与计费](/zh-CN/howto/setup-pricing-and-billing.md) 看账单。
