mirror of
https://github.com/fawney19/Aether.git
synced 2026-10-07 01:47:47 +08:00
fix(usage): 统一用户排行榜 Token 统计口径
- 将用户排行榜 Tokens 调整为与仪表盘今日 Token 一致 - 统一 effective input、cache creation fallback、cache read 计算规则 - 补齐 Postgres 聚合、admin 内存构建和内存仓库回退路径 - 增加缓存命中场景的统计口径测试
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
use crate::observability::usage::admin_usage_total_tokens;
|
||||
use aether_data::repository::auth::StoredAuthApiKeySnapshot;
|
||||
use aether_data_contracts::repository::{
|
||||
provider_catalog::StoredProviderCatalogProvider,
|
||||
@@ -1799,12 +1800,7 @@ pub fn build_user_leaderboard_items(
|
||||
cost: 0.0,
|
||||
});
|
||||
entry.requests = entry.requests.saturating_add(1);
|
||||
entry.tokens = entry.tokens.saturating_add(
|
||||
item.input_tokens
|
||||
.saturating_add(item.output_tokens)
|
||||
.saturating_add(item.cache_creation_input_tokens)
|
||||
.saturating_add(item.cache_read_input_tokens),
|
||||
);
|
||||
entry.tokens = entry.tokens.saturating_add(admin_usage_total_tokens(item));
|
||||
entry.cost += item.total_cost_usd;
|
||||
}
|
||||
|
||||
@@ -2202,4 +2198,24 @@ mod tests {
|
||||
assert_eq!(leaderboard.len(), 1);
|
||||
assert_eq!(leaderboard[0].name, "alice");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn user_leaderboard_tokens_match_dashboard_effective_token_rules() {
|
||||
let item = StoredRequestUsageAudit {
|
||||
input_tokens: 100,
|
||||
output_tokens: 20,
|
||||
total_tokens: 999,
|
||||
cache_creation_input_tokens: 0,
|
||||
cache_creation_ephemeral_5m_input_tokens: 12,
|
||||
cache_creation_ephemeral_1h_input_tokens: 8,
|
||||
cache_read_input_tokens: 80,
|
||||
..sample_usage(Some("legacy-default"))
|
||||
};
|
||||
|
||||
let leaderboard =
|
||||
build_user_leaderboard_items(&[item], &BTreeMap::new(), false, false, false);
|
||||
|
||||
assert_eq!(leaderboard.len(), 1);
|
||||
assert_eq!(leaderboard[0].tokens, 140);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user