refac
This commit is contained in:
1 parent
16c2a9eda4
commit
978d257214
3 files changed
+34
-13
No files matched your search
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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';
|
||||||
|
|||||||
Reference in new issue
Block a user