This commit is contained in:
Timothy Jaeryang Baek committed 2026-08-24 05:40:53 -04:00
1 parent 16c2a9eda4
commit 978d257214
3 files changed
+34 -13

No files matched your search

+5 -7
View File
@@ -61,7 +61,8 @@
processDetails, processDetails,
removeAllDetails, removeAllDetails,
getCodeBlockContents, getCodeBlockContents,
displayFileHandler displayFileHandler,
getUsageTokenCount
} from '$lib/utils'; } from '$lib/utils';
import { AudioQueue } from '$lib/utils/audio'; import { AudioQueue } from '$lib/utils/audio';
import { createTemporaryChatId, isTemporaryChatId } from '$lib/utils/chatId'; import { createTemporaryChatId, isTemporaryChatId } from '$lib/utils/chatId';
@@ -287,13 +288,10 @@
for (let idx = activeMessages.length - 1; idx >= 0; idx -= 1) { for (let idx = activeMessages.length - 1; idx >= 0; idx -= 1) {
const usage = activeMessages[idx]?.usage ?? activeMessages[idx]?.info?.usage; const usage = activeMessages[idx]?.usage ?? activeMessages[idx]?.info?.usage;
const inputTokens = usage?.input_tokens ?? usage?.prompt_tokens; const usageTokens = getUsageTokenCount(usage);
if (inputTokens) { if (usageTokens) {
hasUsageCheckpoint = true; hasUsageCheckpoint = true;
estimatedTokens = estimatedTokens = usageTokens + estimateMessagesTokens(activeMessages.slice(idx + 1));
Number(inputTokens || 0) +
Number(usage.output_tokens ?? usage.completion_tokens ?? 0) +
estimateMessagesTokens(activeMessages.slice(idx + 1));
break; break;
} }
} }
+4 -6
View File
@@ -52,6 +52,7 @@
getCurrentDateTime, getCurrentDateTime,
getFormattedDate, getFormattedDate,
getFormattedTime, getFormattedTime,
getUsageTokenCount,
getUserPosition, getUserPosition,
getUserTimezone, getUserTimezone,
getWeekday getWeekday
@@ -482,13 +483,10 @@
for (let idx = activeMessages.length - 1; idx >= 0; idx -= 1) { for (let idx = activeMessages.length - 1; idx >= 0; idx -= 1) {
const usage = activeMessages[idx]?.usage ?? activeMessages[idx]?.info?.usage; const usage = activeMessages[idx]?.usage ?? activeMessages[idx]?.info?.usage;
const inputTokens = usage?.input_tokens ?? usage?.prompt_tokens; const usageTokens = getUsageTokenCount(usage);
if (inputTokens) { if (usageTokens) {
hasUsageCheckpoint = true; hasUsageCheckpoint = true;
estimatedTokens = estimatedTokens = usageTokens + estimateMessagesTokens(activeMessages.slice(idx + 1));
Number(inputTokens || 0) +
Number(usage.output_tokens ?? usage.completion_tokens ?? 0) +
estimateMessagesTokens(activeMessages.slice(idx + 1));
break; break;
} }
} }
+25
View File
@@ -1417,6 +1417,31 @@ export const createMessagesList = (history, messageId) => {
return list.reverse(); return list.reverse();
}; };
const toTokenCount = (value: unknown) => {
const parsed = Number(value || 0);
return Number.isFinite(parsed) ? Math.trunc(parsed) : 0;
};
export const getUsageTokenCount = (usage?: Record<string, unknown> | null) => {
if (!usage) {
return 0;
}
let promptTokens = toTokenCount(usage.prompt_tokens || usage.prompt_eval_count || 0);
if (!promptTokens && (usage.prompt_n != null || usage.cache_n != null)) {
promptTokens = toTokenCount(usage.prompt_n || 0) + toTokenCount(usage.cache_n || 0);
}
if (!promptTokens) {
promptTokens = toTokenCount(usage.input_tokens || 0);
}
const completionTokens = toTokenCount(
usage.completion_tokens || usage.output_tokens || usage.eval_count || usage.predicted_n || 0
);
return promptTokens + completionTokens;
};
export const formatFileSize = (size) => { export const formatFileSize = (size) => {
if (size == null) return 'Unknown size'; if (size == null) return 'Unknown size';
if (typeof size !== 'number' || size < 0) return 'Invalid size'; if (typeof size !== 'number' || size < 0) return 'Invalid size';