
以下从数据采集、维度设计、查询方法、异常检测四个层面展开。
在API调用链路中增加一个统一代理层,所有AI请求先经过该代理,再由代理转发到各模型厂商。代理层记录每次调用的完整信息。
关键字段设计:
字段 | 类型 | 说明 |
|---|---|---|
request_id | String | 全局唯一请求ID |
timestamp | DateTime | 调用时间 |
team | String | 归属团队 |
application | String | 调用应用 |
model | String | 模型名称 |
user_id | String | 用户标识 |
scenario | String | 使用场景 |
input_tokens | Int | 输入Token数 |
output_tokens | Int | 输出Token数 |
cost | Decimal | 本次调用成本(USD) |
成本计算公式(以OpenAI为例):
text
复制
cost = (input_tokens / 1000) × input_price + (output_tokens / 1000) × output_price不同模型的价格从官方API获取,可在代理层配置表中维护。
CREATE TABLE ai_usage_logs (
request_id String,
timestamp DateTime,
team String,
application String,
model String,
user_id String,
scenario String,
input_tokens UInt32,
output_tokens UInt32,
cost Float64,
response_time_ms UInt32
) ENGINE = MergeTree()
ORDER BY (timestamp, team, application);按团队归因:
SELECT team, SUM(cost) as total_cost
FROM ai_usage_logs
WHERE timestamp >= '2026-03-01'
GROUP BY team
ORDER BY total_cost DESC;按应用+模型归因:
SELECT application, model, SUM(cost) as cost
FROM ai_usage_logs
GROUP BY application, model;按用户归因(Top消耗者):
SELECT user_id, SUM(cost) as cost, COUNT(*) as call_count
FROM ai_usage_logs
WHERE timestamp >= today() - INTERVAL 7 DAY
GROUP BY user_id
ORDER BY cost DESC
LIMIT 10;按场景归因:
SELECT scenario,
AVG(input_tokens + output_tokens) as avg_tokens,
SUM(cost) as total_cost
FROM ai_usage_logs
GROUP BY scenario;单用户日成本告警:
SELECT user_id, SUM(cost) as daily_cost
FROM ai_usage_logs
WHERE timestamp >= today()
GROUP BY user_id
HAVING daily_cost > 100;重复调用检测(同一用户、同一场景、短时间相同问题):
SELECT user_id, scenario, input_text, COUNT(*) as dup_count
FROM ai_usage_logs
WHERE timestamp >= now() - INTERVAL 1 HOUR
GROUP BY user_id, scenario, input_text
HAVING COUNT(*) > 5;环比异常检测(本周 vs 上周):
WITH weekly AS (
SELECT application, SUM(cost) as cost,
toStartOfWeek(timestamp) as week
FROM ai_usage_logs
GROUP BY application, week
)
SELECT application,
cost - lagInFrame(cost, 1) OVER (PARTITION BY application ORDER BY week) as cost_diff
FROM weekly;以上步骤可由一名后端工程师在3个工作日内完成。
通过统一代理层日志记录、多维度SQL统计和异常检测,可以解决AI成本归属不清的问题。上述方案不依赖特定商业产品,基于开源组件即可实现。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。