New Jeremy 2.5 Pro

d55676d6d5172e5cca8311c4eb3beda9603a4e33

Cohee <18619528+Cohee1207@users.noreply.github.com>

4 files changed, +72 -30Ignore whitespace
public/index.html+4 -2
@@ -2098,8 +2098,8 @@
20982098 <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.">
20992099 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.
21002100 </div>
21012101 <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.">
21022102 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.
21032103 </div>
21042104 </div>
21052105 </div>
@@ -3190,6 +3190,7 @@
31903190 <h4 data-i18n="Google Model">Google Model</h4>
31913191 <select id="model_google_select">
31923192 <optgroup label="Gemini 2.5">
3193+ <option value="gemini-2.5-pro-preview-06-05">gemini-2.5-pro-preview-06-05</option>
31933194 <option value="gemini-2.5-pro-preview-05-06">gemini-2.5-pro-preview-05-06</option>
31943195 <option value="gemini-2.5-pro-preview-03-25">gemini-2.5-pro-preview-03-25</option>
31953196 <option value="gemini-2.5-pro-exp-03-25">gemini-2.5-pro-exp-03-25</option>
@@ -3336,6 +3337,7 @@
33363337
33373338 <!-- Full Version Models -->
33383339 <optgroup id="vertexai_full_gemini_25" label="Gemini 2.5" data-mode="full">
3340+ <option value="gemini-2.5-pro-preview-06-05">gemini-2.5-pro-preview-06-05</option>
33393341 <option value="gemini-2.5-pro-preview-05-06">gemini-2.5-pro-preview-05-06</option>
33403342 <option value="gemini-2.5-pro-preview-03-25">gemini-2.5-pro-preview-03-25</option>
33413343 <option value="gemini-2.5-pro-exp-03-25">gemini-2.5-pro-exp-03-25</option>
public/scripts/extensions/caption/settings.html+2 -0
@@ -85,6 +85,7 @@
8585 <option data-type="anthropic" value="claude-3-opus-20240229">claude-3-opus-20240229</option>
8686 <option data-type="anthropic" value="claude-3-sonnet-20240229">claude-3-sonnet-20240229</option>
8787 <option data-type="anthropic" value="claude-3-haiku-20240307">claude-3-haiku-20240307</option>
88+ <option data-type="google" value="gemini-2.5-pro-preview-06-05">gemini-2.5-pro-preview-06-05</option>
8889 <option data-type="google" value="gemini-2.5-pro-preview-05-06">gemini-2.5-pro-preview-05-06</option>
8990 <option data-type="google" value="gemini-2.5-pro-preview-03-25">gemini-2.5-pro-preview-03-25</option>
9091 <option data-type="google" value="gemini-2.5-pro-exp-03-25">gemini-2.5-pro-exp-03-25</option>
@@ -116,6 +117,7 @@
116117 <option data-type="google" value="gemini-1.5-flash-8b-exp-0827">gemini-1.5-flash-8b-exp-0827</option>
117118 <option data-type="google" value="learnlm-2.0-flash-experimental">learnlm-2.0-flash-experimental</option>
118119 <option data-type="google" value="learnlm-1.5-pro-experimental">learnlm-1.5-pro-experimental</option>
120+ <option data-type="vertexai" value="gemini-2.5-pro-preview-06-05">gemini-2.5-pro-preview-06-05</option>
119121 <option data-type="vertexai" value="gemini-2.5-pro-preview-05-06">gemini-2.5-pro-preview-05-06</option>
120122 <option data-type="vertexai" value="gemini-2.5-pro-preview-03-25">gemini-2.5-pro-preview-03-25</option>
121123 <option data-type="vertexai" value="gemini-2.5-flash-preview-05-20">gemini-2.5-flash-preview-05-20</option>
src/endpoints/backends/chat-completions.js+3 -6
@@ -414,7 +414,6 @@ async function sendMakerSuiteRequest(request, response) {
414414 ];
415415
416416 const isThinkingConfigModel = m => /^gemini-2.5-(flash|pro)/.test(m);
417- const isThinkingBudgetModel = m => /^gemini-2.5-flash/.test(m);
418417
419418 const noSearchModels = [
420419 'gemini-2.0-flash-lite',
@@ -470,11 +469,9 @@ async function sendMakerSuiteRequest(request, response) {
470469 if (isThinkingConfigModel(model)) {
471470 const thinkingConfig = { includeThoughts: includeReasoning };
472471
473- if (isThinkingBudgetModel(model)) {
472+ const thinkingBudget = calculateGoogleBudgetTokens(generationConfig.maxOutputTokens, reasoningEffort, model);
474- const thinkingBudget = calculateGoogleBudgetTokens(generationConfig.maxOutputTokens, reasoningEffort);
473+ if (Number.isInteger(thinkingBudget)) {
475- if (Number.isInteger(thinkingBudget)) {
474+ thinkingConfig.thinkingBudget = thinkingBudget;
476- thinkingConfig.thinkingBudget = thinkingBudget;
477- }
478475 }
479476
480477 generationConfig.thinkingConfig = thinkingConfig;
src/prompt-converters.js+63 -22
@@ -992,32 +992,73 @@ export function calculateClaudeBudgetTokens(maxTokens, reasoningEffort, stream)
992992 * Calculate the Google budget tokens for a given reasoning effort.
993993 * @param {number} maxTokens Maximum tokens
994994 * @param {string} reasoningEffort Reasoning effort
995+ * @param {string} model Model name
995996 * @returns {number?} Budget tokens
996997 */
997998export function calculateGoogleBudgetTokens(maxTokens, reasoningEffort, model) {
998- let budgetTokens = 0;
999+ function getFlashBudget() {
1000+ let budgetTokens = 0;
1001+
1002+ switch (reasoningEffort) {
1003+ case REASONING_EFFORT.auto:
1004+ return null;
1005+ case REASONING_EFFORT.min:
1006+ budgetTokens = 0;
1007+ break;
1008+ case REASONING_EFFORT.low:
1009+ budgetTokens = Math.floor(maxTokens * 0.1);
1010+ break;
1011+ case REASONING_EFFORT.medium:
1012+ budgetTokens = Math.floor(maxTokens * 0.25);
1013+ break;
1014+ case REASONING_EFFORT.high:
1015+ budgetTokens = Math.floor(maxTokens * 0.5);
1016+ break;
1017+ case REASONING_EFFORT.max:
1018+ budgetTokens = maxTokens;
1019+ break;
1020+ }
9991021
1000- switch (reasoningEffort) {
1022+ budgetTokens = Math.min(budgetTokens, 24576);
1001- case REASONING_EFFORT.auto:
1023+
10021024 return nullbudgetTokens;
1003- case REASONING_EFFORT.min:
1004- budgetTokens = 0;
1005- break;
1006- case REASONING_EFFORT.low:
1007- budgetTokens = Math.floor(maxTokens * 0.1);
1008- break;
1009- case REASONING_EFFORT.medium:
1010- budgetTokens = Math.floor(maxTokens * 0.25);
1011- break;
1012- case REASONING_EFFORT.high:
1013- budgetTokens = Math.floor(maxTokens * 0.5);
1014- break;
1015- case REASONING_EFFORT.max:
1016- budgetTokens = maxTokens;
1017- break;
10181025 }
10191026
1020- budgetTokens = Math.min(budgetTokens, 24576);
1027+ function getProBudget() {
1028+ let budgetTokens = 0;
10211029
1022- return budgetTokens;
1030+ switch (reasoningEffort) {
1031+ case REASONING_EFFORT.auto:
1032+ return null;
1033+ case REASONING_EFFORT.min:
1034+ budgetTokens = 128;
1035+ break;
1036+ case REASONING_EFFORT.low:
1037+ budgetTokens = Math.floor(maxTokens * 0.1);
1038+ break;
1039+ case REASONING_EFFORT.medium:
1040+ budgetTokens = Math.floor(maxTokens * 0.25);
1041+ break;
1042+ case REASONING_EFFORT.high:
1043+ budgetTokens = Math.floor(maxTokens * 0.5);
1044+ break;
1045+ case REASONING_EFFORT.max:
1046+ budgetTokens = maxTokens;
1047+ break;
1048+ }
1049+
1050+ budgetTokens = Math.max(Math.min(budgetTokens, 32768), 128);
1051+
1052+ return budgetTokens;
1053+ }
1054+
1055+ if (model.includes('flash')) {
1056+ return getFlashBudget();
1057+ }
1058+
1059+ if (model.includes('pro')) {
1060+ return getProBudget();
1061+ }
1062+
1063+ return null;
10231064}