去年底我们团队做年度复盘的时候,财务拿过来一张报表,上面写着:AI API年度支出超预算47%。我当时整个人愣住了——明明年初规划的时候算得好好的,怎么就超了这么多?后来仔细一查才发现,问题出在一个我们一直忽略的地方:所有请求,不管简单还是复杂,全部打到了GPT-4o上。
| 模型 | 输入价格 | 输出价格 | 上下文窗口 | 实测TTFT |
|---|---|---|---|---|
| DeepSeek V3 | $0.07/1M | $0.28/1M | 128K | 1.5s |
| GPT-4o | $2.50/1M | $10.00/1M | 128K | 0.8s |
| Claude 3.5 Sonnet | $3.00/1M | $15.00/1M | 200K | 1.2s |
| Gemini 1.5 Pro | $1.25/1M | $5.00/1M | 2M | 2.0s |
| GPT-4o mini | $0.15/1M | $0.60/1M | 128K | 0.5s |
数据来源:各平台官方定价页(2026年7月) · TTFT 为 TokenNexus 实测平均值 · 仅供参考
这件事直接逼着我们开始研究AI模型路由。折腾了将近三个月,从零搭建了一套多模型智能调度系统,最终把API成本砍掉了70%。这篇文章就是这三个月的完整记录,希望对你有参考价值。
一、80%的企业都在为API多花钱
先说一个让我挺震惊的数据。根据2026年初几份行业调研报告的综合统计,80-85%的企业AI基础设施预算超支25%以上。注意,不是"有些超支",而是绝大多数企业都在超支,而且超支幅度至少四分之一。
超支的原因其实很集中,排在前三的分别是:
- 模型选择一刀切——所有请求都用最贵的模型,简单任务也在烧高端算力
- 没有请求分级机制——客服问答和代码生成用同一个模型、同一个优先级
- 缺乏降级和容灾策略——一个供应商挂了,整个业务跟着停摆
我们当时三条全中。尤其是第一条,一个"帮我翻译一句话"的请求,跟"分析这份200页的技术文档"走的是同一个GPT-4o端点,价格差了几十倍,但我们对这件事毫无感知。
AI API的成本优化,核心不是"少调用",而是"把每个请求送到最合适的模型上"。简单请求用快速廉价模型处理,复杂请求才动用高端模型。这就是智能路由的本质。
二、智能路由到底在干什么
说白了,智能路由就是在用户请求和AI模型之间加了一层"调度中枢"。它的工作流程可以拆解为三个步骤:
1. 特征提取:理解每个请求的"长相"
路由系统拿到一个请求后,不会直接转发,而是先分析这个请求的一系列特征。具体包括:
- 消息长度——短文本(几百token以内)vs 长文本(几千甚至上万token)
- 是否包含代码或数学公式——这类任务通常需要推理能力更强的模型
- 语言种类——中文任务、英文任务、多语言混合任务,不同模型擅长领域不同
- 对话轮数——单轮问答 vs 多轮上下文对话
- 估算token数——根据输入内容预估消耗的token总量
- 问题类型——事实问答、创意写作、代码生成、数据分析、摘要提取等
2. 路由引擎:根据规则做决策
特征提取完之后,路由引擎根据预设的策略来决定这个请求该发给哪个模型。策略可以很简单(随机分配),也可以很复杂(综合延迟、成本、用量余量等多个维度打分)。
3. 模型池:多供应商多模型兜底
模型池里配置了多个供应商的多个模型。比如同时接入OpenAI的GPT-4o-mini、Anthropic的Claude Haiku、DeepSeek-V3、Google的Gemini Flash等。路由引擎从池子里挑一个最合适的来处理请求。
我们上线路由系统后,大约60%的请求被分流到了轻量模型(GPT-4o-mini、Claude Haiku、Gemini Flash),只有25%需要中等模型(GPT-4o、Claude Sonnet),剩下15%才走高端模型。光是这一步,成本就降了50%以上。
三、主流路由方案对比
市面上做AI模型路由的工具和平台已经不少了,我们调研了一圈,最终重点关注了以下五个方案:
| 方案 | 类型 | 核心优势 | 适合场景 |
|---|---|---|---|
| LiteLLM | 开源代理 | 统一API格式,支持100+模型,社区活跃 | 中小团队快速上手 |
| Kong AI Gateway | API网关 | 企业级流量管理,插件生态丰富 | 已有Kong基础设施的企业 |
| Portkey | 托管平台 | 开箱即用的可观测性,语义缓存 | 不想自己运维的团队 |
| TrueFoundry | ML平台 | 模型部署+路由一体化,延迟优化强 | 需要私有化部署的场景 |
| Microsoft Foundry Model Router | 云服务 | 实时分析prompt智能转发,Azure生态集成 | Azure深度用户 |
📊 主流 AI API 输入价格对比(美元/百万Token,2026年7月数据)
⚠️ 踩坑备注:成本失控的常见原因
实际项目中导致成本飙升的三大原因:① 未启用 Prompt Caching,重复 system prompt 每次都全量计费;② 未设置 max_tokens,模型滔滔不绝烧钱;③ 用 GPT-4o 做简单分类任务(应该用 GPT-4o-mini)。建议每周检查 Token 用量趋势,异常增长时立即排查。
特别说一下Microsoft Foundry Model Router,这是微软在2026年2月发布的新服务。它的核心能力是实时分析prompt的内容和特征,然后自动转发到最合适的模型上。如果你本身就在用Azure OpenAI,这个方案几乎是零成本接入。
我们最终选了LiteLLM作为基础,配合自研的路由策略层。原因很简单:LiteLLM开源免费,Python生态好,团队改起来方便,而且社区迭代速度很快。
四、手把手搭建路由系统
下面分享一下我们路由系统的整体架构和核心代码。不是什么高深的东西,但确实管用。
系统架构
架构分四层:
- 接入层——对外暴露统一的OpenAI兼容API,业务侧零改动
- 特征提取层——解析请求内容,提取路由所需的特征向量
- 路由决策层——根据策略选择目标模型和供应商
- 执行层——通过LiteLLM代理转发请求到目标模型
核心路由逻辑(Python示例)
class MessageRouter:
def __init__(self):
self.model_pool = {
"light": ["gpt-4o-mini", "claude-3-haiku", "gemini-1.5-flash"],
"medium": ["gpt-4o", "claude-sonnet-4", "deepseek-v3"],
"heavy": ["gpt-4o", "claude-opus-4", "gemini-1.5-pro"]
}
self.strategy = RoutingStrategy()
def extract_features(self, messages):
text = " ".join(m["content"] for m in messages)
return {
"msg_length": len(text),
"has_code": bool(re.search(r'```|def |class ', text)),
"has_math": bool(re.search(r'[=+\-*/^]|\\frac|\\sum', text)),
"language": detect_language(text),
"turn_count": len(messages),
"est_tokens": estimate_tokens(text),
"question_type": classify_question(text)
}
def route(self, messages, strategy="cost_optimized"):
features = self.extract_features(messages)
tier = self.strategy.decide(features, strategy)
model = self.strategy.pick_model(tier, features)
return model
LiteLLM配置(YAML示例)
model_list:
- model_name: gpt-4o-mini
litellm_params:
model: openai/gpt-4o-mini
api_key: ${OPENAI_API_KEY}
- model_name: claude-3-haiku
litellm_params:
model: anthropic/claude-3-haiku-20240307
api_key: ${ANTHROPIC_API_KEY}
- model_name: deepseek-v3
litellm_params:
model: deepseek/deepseek-chat
api_base: https://api.deepseek.com
api_key: ${DEEPSEEK_API_KEY}
router_settings:
routing_strategy: usage-based-routing
num_retries: 3
timeout: 30
fallbacks: [{"gpt-4o": ["claude-sonnet-4", "deepseek-v3"]}]
不要一上来就搞复杂的路由策略。先用simple-shuffle跑一周,收集每个模型在各类请求上的真实表现数据(延迟、准确率、成本),然后再逐步切换到更精细的策略。数据驱动,别拍脑袋。
五、路由策略详解
路由策略是整个系统的灵魂。我们调研和实际测试了五种主流策略,各有适用场景:
1. Simple Shuffle(简单随机分配)
最简单的策略,把请求随机分配到模型池中的任意一个模型。适合刚上线时做A/B测试,收集各模型在不同任务上的基线数据。优点是实现简单,缺点是完全不考虑成本和质量。
2. Least-Busy(最少繁忙优先)
把请求发给当前并发数最少的模型。这个策略的核心目标是降低整体延迟,适合对响应速度要求高的实时场景,比如在线客服、聊天机器人。当一个模型因为请求排队导致延迟飙升时,自动把新请求分流到空闲的模型上。
3. Latency-Based Routing(延迟优先,EWMA算法)
这是least-busy的进阶版。不是看当前并发数,而是用EWMA(指数加权移动平均)算法追踪每个模型的历史延迟。EWMA的好处是对突发延迟有平滑效果,不会因为一次慢响应就放弃一个模型。计算公式大概是:
# EWMA延迟计算
alpha = 0.3 # 平滑因子,越小越平滑
ewma_latency = alpha * current_latency + (1 - alpha) * previous_ewma
# 选择EWMA延迟最低的模型
best_model = min(models, key=lambda m: m.ewma_latency)
我们实测下来,这个策略把P99延迟从原来的3.2秒降到了1.1秒,效果非常明显。
4. Usage-Based Routing(用量优先,TPM/RPM余量)
这个策略关注的是每个模型的配额余量。大多数AI API供应商都有TPM(每分钟token数)和RPM(每分钟请求数)的限制。usage-based-routing会实时监控每个模型的TPM/RPM余量,优先把请求发给余量充足的模型,避免触发限流。
def usage_based_select(models):
scores = []
for m in models:
tpm_headroom = (m.tpm_limit - m.tpm_used) / m.tpm_limit
rpm_headroom = (m.rpm_limit - m.rpm_used) / m.rpm_limit
score = 0.6 * tpm_headroom + 0.4 * rpm_headroom
scores.append(score)
return models[scores.index(max(scores))]
这个策略在高峰期特别有用。我们有一次做活动,流量突然翻了5倍,多亏了这个策略,没有触发任何供应商的限流。
5. Budget Routing(预算路由)
这是最"精打细算"的策略。给每个模型设定月度预算上限,路由引擎在分配请求时会优先消耗预算余量多的模型,确保不超支。当某个模型的预算快用完时,自动把请求切换到更便宜的替代模型上。
Budget routing需要配合实时成本监控使用。我们每天跑一次成本汇总脚本,如果发现某个模型的消耗速率异常(比如某天突然被大量调用),会自动触发告警并临时调整路由权重。
六、真实效果数据
说了这么多,最关心的肯定是实际效果。以下是我们路由系统上线三个月后的核心数据:
| 指标 | 上线前 | 上线后 | 变化 |
|---|---|---|---|
| 月度API成本 | $12,400 | $3,720 | -70% |
| 平均响应延迟(P50) | 1.8s | 0.7s | -61% |
| P99延迟 | 3.2s | 1.1s | -66% |
| 服务可用性 | 99.2% | 99.95% | +0.75% |
| 限流错误次数/月 | 340次 | 12次 | -96% |
可用性从99.2%提升到99.95%,这完全是路由系统的"副产品"。因为我们配了多供应商fallback,一个模型挂了自动切到另一个,用户几乎感知不到故障。之前OpenAI有一次区域性宕机,持续了40分钟,我们的业务完全没受影响。
七、踩坑总结和最佳实践
最后分享几个我们踩过的坑,希望能帮你少走弯路。
坑1:模型质量评估不能只看benchmark
我们一开始用MMLU、HumanEval这些公开benchmark来评估模型质量,结果发现跟实际业务表现差距很大。比如Claude Haiku在benchmark上分数不如GPT-4o,但在我们的客服场景里,用户满意度几乎一样。后来我们改成了用真实业务数据做评估,每周抽样200条响应让人工标注质量。
坑2:不要忽略供应商的地域差异
同样是调用OpenAI API,从国内直连和通过中转节点,延迟差了3-5倍。我们后来针对不同地区的用户做了就近接入,国内用户优先走国内供应商(DeepSeek、智谱GLM),海外用户走OpenAI和Anthropic,整体延迟又降了40%。
坑3:路由策略要定期review
模型在迭代,价格在调整,你的路由策略也得跟着变。我们每个月做一次策略review,根据最新的模型表现和价格调整路由权重。比如DeepSeek-V3在2026年3月降价之后,我们立刻提高了它在medium层的权重,又省了一笔。
坑4:监控和告警是生命线
没有监控的路由系统就是黑盒。我们搭建了完整的监控体系,核心指标包括:每个模型的调用量、延迟分布、错误率、token消耗、实时成本。任何一个指标异常都会触发飞书告警。这套监控帮我们提前发现了好几次潜在问题。
- 先用simple-shuffle收集数据,再切换到精细策略
- 至少接入3个供应商,确保容灾能力
- 用真实业务数据评估模型质量,别迷信benchmark
- 关注地域差异,就近接入降低延迟
- 每月review路由策略,跟上模型和价格变化
- 搭建完善的监控告警体系
写在最后
AI模型路由这件事,听起来高大上,但本质就是一个"好钢用在刀刃上"的思路。不是每个请求都需要最贵最好的模型,大部分业务场景下,轻量模型已经够用了。
我们从一个"所有请求打GPT-4o"的粗放模式,演进到现在的多模型智能调度,成本降了70%,可用性反而提升了。回头看,这可能是我们2026年做的性价比最高的一次技术投入。
如果你也在为AI API成本发愁,不妨从最简单的路由开始试起。不需要一步到位,先让10%的简单请求走轻量模型,看看效果。相信我,你会回来感谢自己的。