diff --git a/packages/tui/src/component/prompt/index.tsx b/packages/tui/src/component/prompt/index.tsx index fe7f4a22f75f..9b29939ff107 100644 --- a/packages/tui/src/component/prompt/index.tsx +++ b/packages/tui/src/component/prompt/index.tsx @@ -273,10 +273,14 @@ export function Prompt(props: PromptProps) { if (tokens <= 0) return const model = sync.data.provider.find((item) => item.id === last.providerID)?.models[last.modelID] - const pct = model?.limit.context ? `${Math.round((tokens / model.limit.context) * 100)}%` : undefined + const contextLimit = model?.limit.context + const pct = contextLimit ? `${Math.round((tokens / contextLimit) * 100)}%` : undefined const cost = session?.cost ?? 0 return { - context: pct ? `${Locale.number(tokens)} (${pct})` : Locale.number(tokens), + context: + pct && contextLimit + ? `${Locale.number(tokens)} / ${Locale.number(contextLimit)} (${pct})` + : Locale.number(tokens), cost: cost > 0 ? money.format(cost) : undefined, } }) diff --git a/packages/tui/src/feature-plugins/sidebar/context.tsx b/packages/tui/src/feature-plugins/sidebar/context.tsx index f1c99d9679ce..b727cea840c7 100644 --- a/packages/tui/src/feature-plugins/sidebar/context.tsx +++ b/packages/tui/src/feature-plugins/sidebar/context.tsx @@ -22,15 +22,18 @@ function View(props: { api: TuiPluginApi; session_id: string }) { return { tokens: 0, percent: null, + contextLimit: null, } } const tokens = last.tokens.input + last.tokens.output + last.tokens.reasoning + last.tokens.cache.read + last.tokens.cache.write - const model = props.api.state.provider.find((item) => item.id === last.providerID)?.models[last.modelID] + const contextLimit = props.api.state.provider.find((item) => item.id === last.providerID)?.models[last.modelID]?.limit + .context return { tokens, - percent: model?.limit.context ? Math.round((tokens / model.limit.context) * 100) : null, + percent: contextLimit ? Math.round((tokens / contextLimit) * 100) : null, + contextLimit, } }) @@ -39,7 +42,10 @@ function View(props: { api: TuiPluginApi; session_id: string }) { Context - {state().tokens.toLocaleString()} tokens + + {state().tokens.toLocaleString()} + {state().contextLimit ? ` / ${state().contextLimit?.toLocaleString()}` : ""} tokens + {state().percent ?? 0}% used {money.format(cost())} spent