New Jeremy 2.5 Pro

This commit is contained in:
Cohee
2025-06-05 20:14:46 +03:00
parent 1c499df9da
commit d55676d6d5
4 changed files with 72 additions and 30 deletions

View File

@@ -2098,8 +2098,8 @@
<div class="toggle-description justifyLeft marginBot5" data-source="claude" data-i18n="Allocates a portion of the response length for thinking (min: 1024 tokens, low: 10%, medium: 25%, high: 50%, max: 95%), but minimum 1024 tokens. Auto does not request thinking.">
Allocates a portion of the response length for thinking (min: 1024 tokens, low: 10%, medium: 25%, high: 50%, max: 95%), but minimum 1024 tokens. Auto does not request thinking.
</div>
<div class="toggle-description justifyLeft marginBot5" data-source="makersuite,vertexai" data-i18n="Allocates a portion of the response length for thinking (min: 0 tokens, low: 10%, medium: 25%, high: 50%, max: 24576 tokens). Auto lets the model decide.">
Allocates a portion of the response length for thinking (min: 0 tokens, low: 10%, medium: 25%, high: 50%, max: 24576 tokens). Auto lets the model decide.
<div class="toggle-description justifyLeft marginBot5" data-source="makersuite,vertexai" data-i18n="Allocates a portion of the response length for thinking (Flash 2.5/Pro 2.5) (min: 0/128 tokens, low: 10%, medium: 25%, high: 50%, max: 24576/32768 tokens). Auto lets the model decide.">
Allocates a portion of the response length for thinking (Flash 2.5/Pro 2.5) (min: 0/128 tokens, low: 10%, medium: 25%, high: 50%, max: 24576/32768 tokens). Auto lets the model decide.
</div>
</div>
</div>
@@ -3190,6 +3190,7 @@
<h4 data-i18n="Google Model">Google Model</h4>
<select id="model_google_select">
<optgroup label="Gemini 2.5">
<option value="gemini-2.5-pro-preview-06-05">gemini-2.5-pro-preview-06-05</option>
<option value="gemini-2.5-pro-preview-05-06">gemini-2.5-pro-preview-05-06</option>
<option value="gemini-2.5-pro-preview-03-25">gemini-2.5-pro-preview-03-25</option>
<option value="gemini-2.5-pro-exp-03-25">gemini-2.5-pro-exp-03-25</option>
@@ -3336,6 +3337,7 @@
<!-- Full Version Models -->
<optgroup id="vertexai_full_gemini_25" label="Gemini 2.5" data-mode="full">
<option value="gemini-2.5-pro-preview-06-05">gemini-2.5-pro-preview-06-05</option>
<option value="gemini-2.5-pro-preview-05-06">gemini-2.5-pro-preview-05-06</option>
<option value="gemini-2.5-pro-preview-03-25">gemini-2.5-pro-preview-03-25</option>
<option value="gemini-2.5-pro-exp-03-25">gemini-2.5-pro-exp-03-25</option>

View File

@@ -85,6 +85,7 @@
<option data-type="anthropic" value="claude-3-opus-20240229">claude-3-opus-20240229</option>
<option data-type="anthropic" value="claude-3-sonnet-20240229">claude-3-sonnet-20240229</option>
<option data-type="anthropic" value="claude-3-haiku-20240307">claude-3-haiku-20240307</option>
<option data-type="google" value="gemini-2.5-pro-preview-06-05">gemini-2.5-pro-preview-06-05</option>
<option data-type="google" value="gemini-2.5-pro-preview-05-06">gemini-2.5-pro-preview-05-06</option>
<option data-type="google" value="gemini-2.5-pro-preview-03-25">gemini-2.5-pro-preview-03-25</option>
<option data-type="google" value="gemini-2.5-pro-exp-03-25">gemini-2.5-pro-exp-03-25</option>
@@ -116,6 +117,7 @@
<option data-type="google" value="gemini-1.5-flash-8b-exp-0827">gemini-1.5-flash-8b-exp-0827</option>
<option data-type="google" value="learnlm-2.0-flash-experimental">learnlm-2.0-flash-experimental</option>
<option data-type="google" value="learnlm-1.5-pro-experimental">learnlm-1.5-pro-experimental</option>
<option data-type="vertexai" value="gemini-2.5-pro-preview-06-05">gemini-2.5-pro-preview-06-05</option>
<option data-type="vertexai" value="gemini-2.5-pro-preview-05-06">gemini-2.5-pro-preview-05-06</option>
<option data-type="vertexai" value="gemini-2.5-pro-preview-03-25">gemini-2.5-pro-preview-03-25</option>
<option data-type="vertexai" value="gemini-2.5-flash-preview-05-20">gemini-2.5-flash-preview-05-20</option>

View File

@@ -414,7 +414,6 @@ async function sendMakerSuiteRequest(request, response) {
];
const isThinkingConfigModel = m => /^gemini-2.5-(flash|pro)/.test(m);
const isThinkingBudgetModel = m => /^gemini-2.5-flash/.test(m);
const noSearchModels = [
'gemini-2.0-flash-lite',
@@ -470,11 +469,9 @@ async function sendMakerSuiteRequest(request, response) {
if (isThinkingConfigModel(model)) {
const thinkingConfig = { includeThoughts: includeReasoning };
if (isThinkingBudgetModel(model)) {
const thinkingBudget = calculateGoogleBudgetTokens(generationConfig.maxOutputTokens, reasoningEffort);
if (Number.isInteger(thinkingBudget)) {
thinkingConfig.thinkingBudget = thinkingBudget;
}
const thinkingBudget = calculateGoogleBudgetTokens(generationConfig.maxOutputTokens, reasoningEffort, model);
if (Number.isInteger(thinkingBudget)) {
thinkingConfig.thinkingBudget = thinkingBudget;
}
generationConfig.thinkingConfig = thinkingConfig;

View File

@@ -992,32 +992,73 @@ export function calculateClaudeBudgetTokens(maxTokens, reasoningEffort, stream)
* Calculate the Google budget tokens for a given reasoning effort.
* @param {number} maxTokens Maximum tokens
* @param {string} reasoningEffort Reasoning effort
* @param {string} model Model name
* @returns {number?} Budget tokens
*/
export function calculateGoogleBudgetTokens(maxTokens, reasoningEffort) {
let budgetTokens = 0;
export function calculateGoogleBudgetTokens(maxTokens, reasoningEffort, model) {
function getFlashBudget() {
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;
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;
}
budgetTokens = Math.min(budgetTokens, 24576);
function getProBudget() {
let budgetTokens = 0;
return budgetTokens;
switch (reasoningEffort) {
case REASONING_EFFORT.auto:
return null;
case REASONING_EFFORT.min:
budgetTokens = 128;
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.max(Math.min(budgetTokens, 32768), 128);
return budgetTokens;
}
if (model.includes('flash')) {
return getFlashBudget();
}
if (model.includes('pro')) {
return getProBudget();
}
return null;
}