Go team dropdown

This commit is contained in:
Cohee
2025-04-23 00:38:28 +03:00
parent a95056db40
commit bee3cee740
5 changed files with 117 additions and 105 deletions

View File

@ -3,6 +3,15 @@ import { getConfigValue, tryParse } from './util.js';
const PROMPT_PLACEHOLDER = getConfigValue('promptPlaceholder', 'Let\'s get started.');
const REASONING_EFFORT = {
auto: 'auto',
low: 'low',
medium: 'medium',
high: 'high',
min: 'min',
max: 'max',
};
/**
* @typedef {object} PromptNames
* @property {string} charName Character name
@ -944,25 +953,35 @@ export function cachingAtDepthForOpenRouterClaude(messages, cachingAtDepth) {
}
/**
* Calculate the budget tokens for a given reasoning effort.
* Calculate the Claude budget tokens for a given reasoning effort.
* @param {number} maxTokens Maximum tokens
* @param {string} reasoningEffort Reasoning effort
* @param {boolean} stream If streaming is enabled
* @returns {number} Budget tokens
*/
export function calculateBudgetTokens(maxTokens, reasoningEffort, stream) {
export function calculateClaudeBudgetTokens(maxTokens, reasoningEffort, stream) {
let budgetTokens = 0;
switch (reasoningEffort) {
case 'low':
// Claude doesn't have a default budget value. Use same as min.
case REASONING_EFFORT.auto:
budgetTokens = 1024;
break;
case REASONING_EFFORT.min:
budgetTokens = 1024;
break;
case REASONING_EFFORT.low:
budgetTokens = Math.floor(maxTokens * 0.1);
break;
case 'medium':
case REASONING_EFFORT.medium:
budgetTokens = Math.floor(maxTokens * 0.25);
break;
case 'high':
case REASONING_EFFORT.high:
budgetTokens = Math.floor(maxTokens * 0.5);
break;
case REASONING_EFFORT.max:
budgetTokens = maxTokens;
break;
}
budgetTokens = Math.max(budgetTokens, 1024);
@ -973,3 +992,37 @@ export function calculateBudgetTokens(maxTokens, reasoningEffort, stream) {
return budgetTokens;
}
/**
* Calculate the Google budget tokens for a given reasoning effort.
* @param {number} maxTokens Maximum tokens
* @param {string} reasoningEffort Reasoning effort
* @returns {number?} Budget tokens
*/
export function calculateGoogleBudgetTokens(maxTokens, reasoningEffort) {
let budgetTokens = 0;
switch (reasoningEffort) {
case REASONING_EFFORT.auto:
return null;
case REASONING_EFFORT.min:
budgetTokens = 0;
break;
case REASONING_EFFORT.low:
budgetTokens = Math.floor(maxTokens * 0.1);
break;
case REASONING_EFFORT.medium:
budgetTokens = Math.floor(maxTokens * 0.25);
break;
case REASONING_EFFORT.high:
budgetTokens = Math.floor(maxTokens * 0.5);
break;
case REASONING_EFFORT.max:
budgetTokens = maxTokens;
break;
}
budgetTokens = Math.min(budgetTokens, 24576);
return budgetTokens;
}