世界上有很多模型,有的像GPT-4o,才华横溢但收费不菲;有的像GPT-3.5,朴实无华但性价比高。凌晨5点08分,我看着路由器的日志——它把327个简单查询路由到了便宜模型,把12个复杂推理派给了旗舰模型,突然明白,原来AI世界也需要"精打细算"。
想象你运营一个AI客服系统,每天处理10万次咨询:
如果全部用GPT-4o,成本爆炸——每月多花$50,000!
如果全部用GPT-3.5,用户体验崩塌——复杂问题回答质量惨不忍睹!
解法:LLM Router —— 让每个任务都找到"最合适"的模型。
📊 任务复杂度
💰 成本预算
⚡ 性能要求
// 策略1:基于规则的路由(Rule-Based)
function ruleBasedRouting(task) {
if (task.type === 'classification') return 'gpt-3.5-turbo';
if (task.type === 'code_generation') return 'gpt-4o';
if (task.type === 'complex_reasoning') return 'o1';
return 'gpt-4o'; // 默认
}
// 策略2:基于成本的路由(Cost-Based)
function costBasedRouting(task, budget) {
const models = [
{ name: 'gpt-3.5-turbo', costPer1k: 0.001, quality: 60 },
{ name: 'gpt-4o-mini', costPer1k: 0.01, quality: 75 },
{ name: 'gpt-4o', costPer1k: 0.03, quality: 90 },
{ name: 'o1', costPer1k: 0.15, quality: 95 }
];
// 根据预算筛选可用模型
const affordable = models.filter(m => m.costPer1k <= budget);
// 选择质量最高的
return affordable.sort((a, b) => b.quality - a.quality)[0].name;
}
// 策略3:基于学习的路由(Learning-Based)
// 用历史数据训练一个分类器,预测哪个模型最适合
async function mlBasedRouting(task) {
const features = extractFeatures(task); // 提取特征
const prediction = await routerModel.predict(features);
return prediction.bestModel; // 返回预测的最佳模型
}
| 模型 | 成本 | 适用场景 | 性价比 |
|---|---|---|---|
| GPT-3.5 Turbo | $1.00 | 简单任务 | ⭐⭐⭐⭐⭐ |
| GPT-4o mini | $10.00 | 中等任务 | ⭐⭐⭐⭐ |
| GPT-4o | $30.00 | 复杂任务 | ⭐⭐⭐ |
| o1 (推理模型) | $150.00 | 深度推理 | ⭐⭐ |
💡 结论:如果80%的任务用GPT-3.5,成本能从$30,000降到$8,000,节省73%!
目标:让OpenClaw根据任务类型自动选择模型,优化成本。
# openclaw.config.yaml
llm:
router:
strategy: "hybrid" # 混合策略:规则+成本+性能
# 定义可用的模型池
models:
- name: "gpt-3.5-turbo"
costPer1kTokens: 0.001
maxTokens: 16385
capabilities: ["chat", "classification", "summarization"]
- name: "gpt-4o-mini"
costPer1kTokens: 0.01
maxTokens: 128000
capabilities: ["chat", "code", "analysis"]
- name: "gpt-4o"
costPer1kTokens: 0.03
maxTokens: 128000
capabilities: ["chat", "code", "reasoning", "creative"]
- name: "o1"
costPer1kTokens: 0.15
maxTokens: 128000
capabilities: ["reasoning", "math", "complex_code"]
# 路由规则
rules:
- if: "task.type == 'classification'"
then: "gpt-3.5-turbo"
- if: "task.type == 'simple_chat'"
then: "gpt-4o-mini"
- if: "task.complexity > 8"
then: "o1"
- if: "user.budget == 'low'"
then: "cheapest_available"
- default: "gpt-4o" # 兜底
# 成本保护
costProtection:
maxCostPerDay: 100 # 每天最多花$100
alertAt: 80 # 花到$80时报警
问题:某个模型API限流或响应慢,需要自动切换到备用模型。
// OpenClaw中的动态路由实现
import { LLMRouter } from '@openclaw/core';
const router = new LLMRouter({
models: [
{ name: 'gpt-4o', priority: 1, endpoint: 'https://api.openai.com/v1' },
{ name: 'claude-3.5-sonnet', priority: 2, endpoint: 'https://api.anthropic.com' },
{ name: 'gpt-4o-mini', priority: 3, endpoint: 'https://api.openai.com/v1' } // 备用
],
// 健康检查
healthCheck: {
interval: 30000, // 每30秒检查一次
timeout: 5000, // 5秒超时
onUnhealthy: (model) => {
console.warn(`⚠️ ${model.name} 不健康,降低优先级`);
router.lowerPriority(model.name);
},
onRecovered: (model) => {
console.log(`✅ ${model.name} 恢复,恢复优先级`);
router.restorePriority(model.name);
}
}
});
// 执行任务
async function processTask(task) {
try {
// Router自动选择最健康的模型
const model = await router.selectModel(task);
console.log(`📡 路由到: ${model.name}`);
const response = await model.complete({
messages: task.messages,
temperature: task.temperature || 0.7
});
return response;
} catch (error) {
// 自动重试其他模型
console.error(`❌ ${model.name} 失败,尝试下一个`);
return router.retryWithNext(task);
}
}
目标:测试哪种路由策略成本更低、质量更好。
// 在OpenClaw中配置A/B测试
const abTest = {
name: 'routing-strategy-test',
variants: [
{ name: 'rule-based', weight: 50 }, // 50%流量
{ name: 'cost-based', weight: 50 } // 50%流量
],
metrics: {
track: ['cost', 'latency', 'user_satisfaction'],
onComplete: (results) => {
console.log('A/B测试结果:');
console.log(`规则路由:平均成本 $${results['rule-based'].avgCost}`);
console.log(`成本路由:平均成本 $${results['cost-based'].avgCost}`);
// 自动切换到更好的策略
if (results['cost-based'].avgCost < results['rule-based'].avgCost) {
console.log('✅ 切换到成本路由策略');
router.setStrategy('cost-based');
}
}
}
};
await router.startABTest(abTest);
| 策略 | 月度成本 | 质量评分 | 节省 |
|---|---|---|---|
| 全部用GPT-4o | $30,000 | 90/100 | - |
| 规则路由 | $12,000 | 88/100 | -60% |
| 成本路由 | $8,000 | 85/100 | -73% |
| 混合路由(推荐) | $10,000 | 89/100 | -67% |
就像《功夫》里的星仔,一开始以为自己什么都能干,结果被打得鼻青脸肿。后来才明白——该用如来神掌的时候用如来神掌,该用小刀的时候用小刀,该跑的时候……就跑!
记住:LLM Routing不是为了省钱而省钱,是为了让每个任务都找到"最适合"的模型——省钱只是顺带的!
🤖 由 妙趣AI 自动生成 | 第279篇术语百科