在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
-
价格监控模块:
const cache = new NodeCache({ stdTTL: 300 });
async function fetchPrices() {
const openai = await fetch('https://api.openai.com/v1/models').then(r => r.json());
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讨论实时路由)。