fix: 模型性能排行按model归并(GROUP BY),消除同模型多条记录

This commit is contained in:
yumoqing 2026-07-22 17:56:18 +08:00
parent 3b9391b582
commit 85913f8332

View File

@ -57,7 +57,15 @@ async def api_model_perf(sor, params_kw=None):
try:
model = params_kw.get('model') if params_kw else None
stat_date = params_kw.get('date') if params_kw else None
sql = "SELECT * FROM dm_model_perf_daily WHERE 1=1"
sql = """SELECT model, catelogid, providerid,
SUM(total_calls) as total_calls,
SUM(success_calls) as success_calls,
SUM(fail_calls) as fail_calls,
CASE WHEN SUM(total_calls)>0 THEN ROUND(SUM(success_calls)*100.0/SUM(total_calls),1) ELSE 0 END as success_rate,
CASE WHEN SUM(total_calls)>0 THEN ROUND(SUM(total_calls*avg_ttft_ms)/SUM(total_calls),1) ELSE NULL END as avg_ttft_ms,
CASE WHEN SUM(total_calls)>0 THEN ROUND(SUM(total_calls*avg_ttot_ms)/SUM(total_calls),1) ELSE NULL END as avg_ttot_ms,
COALESCE(SUM(total_amount_cny),0) as total_amount_cny
FROM dm_model_perf_daily WHERE 1=1"""
ns = {}
if stat_date:
sql += " AND stat_date=${stat_date}$"
@ -65,6 +73,7 @@ async def api_model_perf(sor, params_kw=None):
if model:
sql += " AND model=${model}$"
ns['model'] = model
sql += " GROUP BY model, catelogid, providerid"
sql += " ORDER BY total_calls DESC LIMIT 50"
rows = await sor.sqlExe(sql, ns)
return [dict(r) for r in rows]