Features
成本明细
LLM API 成本追踪 - GPT-4、Claude、Gemini API 调用实时计价。监控 Token 使用量,比较模型成本,优化 AI 支出。
成本明细
UniterRouter 在每个 API 请求的响应 usage 对象中提供实时成本信息。这让你可以程序化地跟踪成本,无需查询控制台。
成本明细适用于托管 UniterRouter 的 Pro 计划 用户。
响应格式
启用成本明细后,API 响应的 usage 对象中将包含额外的成本字段:
{
"id": "chatcmpl-123",
"object": "chat.completion",
"created": 1234567890,
"model": "openai/gpt-4o",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "你好!今天我能帮你什么?"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 10,
"completion_tokens": 15,
"total_tokens": 25,
"cost_usd_total": 0.000125,
"cost_usd_input": 0.000025,
"cost_usd_output": 0.0001,
"cost_usd_cached_input": 0,
"cost_usd_request": 0,
"cost_usd_data_storage": 0.00000025
}
}成本字段
| 字段 | 描述 |
|---|---|
cost_usd_total | 请求的总推理成本(美元,不包括存储) |
cost_usd_input | 输入/提示 token 的成本(美元) |
cost_usd_output | 输出/完成 token 的成本(美元) |
cost_usd_cached_input | 缓存输入 token 的成本(美元,折扣价) |
cost_usd_request | 每请求成本(美元,适用于按请求计费的模型) |
cost_usd_data_storage | UniterRouter 存储成本(美元,每百万 token $0.01,仅在启用保留时) |
注意: cost_usd_total 仅包含提供商/推理成本。当组织策略中启用数据保留时,数据存储成本(cost_usd_data_storage)由 UniterRouter 单独计费。
流式响应
流式响应中也提供成本信息。成本字段包含在 [DONE] 消息之前发送的最终使用块中:
data: {"id":"chatcmpl-123","object":"chat.completion.chunk","choices":[...],"usage":{"prompt_tokens":10,"completion_tokens":15,"total_tokens":25,"cost_usd_total":0.000125,"cost_usd_input":0.000025,"cost_usd_output":0.0001}}
data: [DONE]免费计划用户
如果你使用免费计划(托管 UniterRouter),usage 对象将包含信息消息而不是成本字段:
{
"usage": {
"prompt_tokens": 10,
"completion_tokens": 15,
"total_tokens": 25,
"info": "升级到 Pro 以获取美元成本明细"
}
}升级到 Pro 解锁 API 响应中的实时成本明细。
示例:在代码中跟踪成本
以下是使用成本明细功能程序化跟踪成本的示例:
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.UNITEROUTER_API_KEY,
baseURL: "https://api.uniterouter.ai/v1",
});
async function trackCosts() {
const response = await client.chat.completions.create({
model: "gpt-4o",
messages: [{ role: "user", content: "你好!" }],
});
const usage = response.usage as any;
if (usage.cost_usd_total !== undefined) {
console.log(`请求成本: $${usage.cost_usd_total.toFixed(6)}`);
console.log(` 输入: $${usage.cost_usd_input.toFixed(6)}`);
console.log(` 输出: $${usage.cost_usd_output.toFixed(6)}`);
if (usage.cost_usd_cached_input > 0) {
console.log(` 缓存: $${usage.cost_usd_cached_input.toFixed(6)}`);
}
}
return response;
}使用场景
预算监控
实时跟踪成本并在应用中实现预算限制:
let totalSpent = 0;
const BUDGET_LIMIT = 10.0; // $10 预算
async function makeRequest(messages: Message[]) {
const response = await client.chat.completions.create({
model: "gpt-4o",
messages,
});
const cost = (response.usage as any).cost_usd_total || 0;
totalSpent += cost;
if (totalSpent > BUDGET_LIMIT) {
throw new Error(`预算超支: $${totalSpent.toFixed(2)}`);
}
return response;
}按用户成本分配
为计费或分析跟踪每个用户的成本:
const userCosts: Map<string, number> = new Map();
async function makeRequestForUser(userId: string, messages: Message[]) {
const response = await client.chat.completions.create({
model: "gpt-4o",
messages,
});
const cost = (response.usage as any).cost_usd_total || 0;
const currentCost = userCosts.get(userId) || 0;
userCosts.set(userId, currentCost + cost);
return response;
}成本分析
按模型、时间段或任何其他维度聚合成本:
interface CostEntry {
timestamp: Date;
model: string;
inputCost: number;
outputCost: number;
totalCost: number;
}
const costLog: CostEntry[] = [];
async function loggedRequest(model: string, messages: Message[]) {
const response = await client.chat.completions.create({
model,
messages,
});
const usage = response.usage as any;
costLog.push({
timestamp: new Date(),
model: response.model,
inputCost: usage.cost_usd_input || 0,
outputCost: usage.cost_usd_output || 0,
totalCost: usage.cost_usd_total || 0,
});
return response;
}数据存储成本
当组织策略中启用数据保留时,UniterRouter 会在配置的保留期内存储完整的请求和响应负载。此存储会产生少量额外成本:
- 费率:每百万 token $0.01
- 适用于:输入、缓存、输出和推理 token
- 何时收费:仅当保留级别设置为"保留所有数据"时
- 计费模式:在 API 密钥模式下,仅存储成本从额度中扣除(推理成本计入你的提供商密钥)
存储成本在控制台和使用明细中与推理成本分开显示,以保持提供商成本和 UniterRouter 平台成本之间的透明度。
在计费设置中启用自动充值,防止存储成本耗尽额度时请求失败。
企业功能
企业客户可以使用额外的成本管理功能:
- 自定义加价率用于内部成本分配
- 部门级计费跨团队跟踪使用情况
- 详细导出报告用于会计集成
联系 [email protected] 了解企业定价。
How is this guide?