mirror of
https://gitcode.com/JianFeeeee/ModelRouter.git
synced 2026-09-20 17:07:59 +00:00
feat: surface zero cache hits — distinguish 'missed' from 'not reported'
Live testing across the zen pool showed models report prompt_tokens_details.cached_tokens even when the hit count is 0 (e.g. nemotron-3-ultra-free returns cached_tokens:0, audio_tokens:0, cache_write_tokens:0). The previous >0 guard dropped those objects, so a cache-enabled upstream looked identical to one without cache support. - types: PromptTokensDetails.CachedTokens always emitted (drop inner omitempty) so clients see cached_tokens:0 explicitly; dsh reads it as a 0% hit instead of 'no data' - adapters (9): forward prompt_tokens_details whenever the upstream provides it (presence check instead of >0) - Req: add cache_reported flag set when usage carried cache accounting; WebUI shows an amber 0% tag for reported-but-missed rows and keeps the em-dash only for sources that never report cache data
This commit is contained in:
@ -1990,10 +1990,11 @@
|
||||
// the upstream reported cache accounting, otherwise an em dash.
|
||||
function cacheCell(r) {
|
||||
const hit = r.cache_hit_tokens || 0;
|
||||
if (!hit && !(r.cache_miss_tokens > 0)) return '<span class="muted">—</span>';
|
||||
if (!hit && !(r.cache_miss_tokens > 0) && !r.cache_reported)
|
||||
return '<span class="muted" title="上游未报告缓存数据">—</span>';
|
||||
const prompt = r.prompt_tokens || 0;
|
||||
const pct = prompt > 0 ? Math.round((hit * 100) / prompt) : 0;
|
||||
return `<span class="tag ${pct >= 50 ? "tag-green" : pct > 0 ? "tag-amber" : ""}" title="命中 ${hit} / 未命中 ${r.cache_miss_tokens || 0}">${pct}%</span>`;
|
||||
return `<span class="tag ${pct >= 50 ? "tag-green" : "tag-amber"}" title="命中 ${hit} / 未命中 ${r.cache_miss_tokens || 0}">${pct}%</span>`;
|
||||
}
|
||||
function showModelConfig(srcName, model) {
|
||||
const el = $("#conncfg");
|
||||
|
||||
Reference in New Issue
Block a user