在 LLM 推理成本持续下降的当下,单一提供商 API 调用易导致高支出与服务中断风险。自建动态 API 路由器,通过实时比较 OpenAI、Anthropic 和 Google Gemini 的 token 价格与延迟,选择最低成本提供商,可实现 90% 以上的费用节省,同时提升可用性。这种路由器本质上是代理层,监控多提供商定价 API,结合延迟测试与质量评估动态分发请求,避免厂商锁入。
TokenSaver 服务验证了这一模式的有效性:它聚合 OpenAI 的 GPT-4o/GPT-4o-mini、Anthropic 的 Claude 3.5 Sonnet/Haiku 及 Gemini 2.0/1.5,提供统一 API,输入 token 仅 $0.50 / 千 tokens,输出 $1.50 / 千 tokens,比直接调用高端模型节省 90-99%。Hacker News 近期热议其 Show HN 帖子,强调零配置、实时路由与透明计费。类似机制可自建,避免第三方依赖。
构建路由器的核心是价格与延迟双维度决策。价格监控依赖各厂商公开 API:OpenAI pricing endpoint、Anthropic Messages API 元数据、Gemini Vertex AI 定价页。轮询间隔设为 5 分钟,缓存最近价格矩阵(input/output per 1M tokens)。当前典型价格:OpenAI GPT-4o-mini 输入 $0.15 / 百万 tokens、输出 $0.60;Claude 3.5 Haiku 输入 $0.25、输出 $1.25;Gemini 1.5 Flash 输入 $0.075、输出 $0.30(<128K 上下文)。路由优先最低总成本(inputratio + outputest),ratio 默认 1:3 模拟实际比例。
延迟阈值至关重要,避免低价高延时场景。每 5 分钟对各模型执行基准 prompt(1000 tokens 输入),测量首 token 时间(TTFT)与总时长。阈值:TTFT<500ms 优先,总延迟 < 2s;超时 5s 视为不可用。结合历史 P95 延迟计算分数:score = (1/price_norm) * (1/delay_norm),price_norm 为相对最低价归一,delay_norm 类似。质量评估可选集成 LMSYS Arena 分数或自测准确率阈值 > 85%。
回退策略确保高可用:主选最低成本,若失败(429 限流、超时、质量低)立即切换次优(延迟排序)。支持地理路由:US-East 优先 OpenAI,Asia 选 Gemini。负载均衡:单提供商限流阈值设为 80% RPS(requests per second,根据订阅调整)。
落地实现用 Node.js 或 Python,框架如下:
-
依赖安装:
- Node:
npm i openai @anthropic-ai/sdk google-generativeai axios node-cache - Python:
pip install openai anthropic google-generativeai cachetools
- Node:
-
价格监控模块:
const cache = new NodeCache({ stdTTL: 300 }); // 5min async function fetchPrices() { const openai = await fetch('https://api.openai.com/v1/models').then(r => r.json()); // 解析GPT-4o-mini等价格,类似anthropic/gemini cache.set('prices', pricesMatrix); } setInterval(fetchPrices, 300000); -
延迟测试:
async function benchmarkLatency(provider, model) { const start = Date.now(); const response = await client.chat.completions.create({model, messages: [{role:'user', content:'test'}]}); return Date.now() - start < 2000 ? latency : Infinity; } -
路由决策:
function selectProvider(requestTokens, estOutputTokens) { const prices = cache.get('prices'); const latencies = cache.get('latencies'); return providers.map(p => ({ provider: p, cost: prices[p].input * requestTokens / 1e6 + prices[p].output * estOutputTokens / 1e6, latency: latencies[p], score: 1/cost * (3000/latency) // 调参 })).sort((a,b) => a.score - b.score)[0]; } -
代理端点:
app.post('/chat', async (req, res) => { const best = selectProvider(req.body.messages.length * 500, 1000); try { const resp = await best.client.chat(req.body); res.json({data: resp, billing: {provider: best.provider, cost: calcCost(resp)}}); } catch(e) { // 回退次优 } });
部署上 Kubernetes,水平扩展 3 pod。监控用 Prometheus+Grafana:暴露/metrics端点,指标包括 rps/cost_per_req/p99_latency/provider_usage_rate。警报:日成本 > 预算 80%、单提供商使用 > 70%、P95 延迟 > 3s。
参数调优清单:
- 成本阈值:总成本 > 0.1$/req 切换。
- 延迟权重:实时场景 0.7,非实时 0.3。
- 质量阈值:集成自定义 eval,<90% 分拒绝。
- 缓存:Redis 存历史 latency/prices,TTL 1h。
- 限流:LeakyBucket per provider,峰值 RPS 100。
- 回滚:3 次失败后降级 mini 模型。
风险控制:API 密钥轮换、预算硬限(OpenAI hard-limit $1000/month)。测试覆盖:mock 价格波动、模拟中断。
自建路由器月省数千美元,适用于高吞吐 SaaS。起步 fork TokenSaver 开源灵感,迭代自定义。
资料来源:TokenSaver 官网(https://tokensaver.org,提供统一 API 示例);Hacker News 帖子(API that auto-routes to the cheapest AI provider,4 points 讨论实时路由)。