GOOGLE THONK IS BACK 🚀 Closes #4024

a815461d5ab315c4371f276ba30c8d225a69f619

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

2 files changed, +13 -9Ignore whitespace
public/index.html+1 -1
@@ -2049,7 +2049,7 @@
20492049 </span>
20502050 </div>
20512051 </div>
20522052 <div class="range-block" data-source="deepseek,openrouter,custom,claude,xai,makersuite">
20532053 <label for="openai_show_thoughts" class="checkbox_label widthFreeExpand">
20542054 <input id="openai_show_thoughts" type="checkbox" />
20552055 <span>
src/endpoints/backends/chat-completions.js+12 -8
@@ -350,6 +350,7 @@ async function sendMakerSuiteRequest(request, response) {
350350 const enableWebSearch = Boolean(request.body.enable_web_search);
351351 const requestImages = Boolean(request.body.request_images);
352352 const reasoningEffort = String(request.body.reasoning_effort);
353+ const includeReasoning = Boolean(request.body.include_reasoning);
353354 const isGemma = model.includes('gemma');
354355 const isLearnLM = model.includes('learnlm');
355356
@@ -379,10 +380,8 @@ async function sendMakerSuiteRequest(request, response) {
379380 'gemini-1.5-flash-8b-exp-0924',
380381 ];
381382
382- const thinkingBudgetModels = [
383+ const isThinkingConfigModel = m => /^gemini-2.5-(flash|pro)/.test(m);
383- 'gemini-2.5-flash-preview-04-17',
384+ const isThinkingBudgetModel = m => /^gemini-2.5-flash/.test(m);
384- 'gemini-2.5-flash-preview-05-20',
385- ];
386385
387386 const noSearchModels = [
388387 'gemini-2.0-flash-lite',
@@ -435,12 +434,17 @@ async function sendMakerSuiteRequest(request, response) {
435434 tools.push({ function_declarations: functionDeclarations });
436435 }
437436
438437 if (thinkingBudgetModels.includesisThinkingConfigModel(model)) {
439- const thinkingBudget = calculateGoogleBudgetTokens(generationConfig.maxOutputTokens, reasoningEffort);
438+ const thinkingConfig = { includeThoughts: includeReasoning };
440439
441440 if (Number.isIntegerisThinkingBudgetModel(thinkingBudgetmodel)) {
442- generationConfig.thinkingConfig = { thinkingBudget: thinkingBudget };
441+ const thinkingBudget = calculateGoogleBudgetTokens(generationConfig.maxOutputTokens, reasoningEffort);
442+ if (Number.isInteger(thinkingBudget)) {
443+ thinkingConfig.thinkingBudget = thinkingBudget;
444+ }
443445 }
446+
447+ generationConfig.thinkingConfig = thinkingConfig;
444448 }
445449
446450 let body = {