google bonanza pro
| @@ -3169,6 +3169,7 @@ | ||
| 3169 | 3169 | <select id="model_google_select"> |
| 3170 | 3170 | <optgroup label="Gemini 3.0"> |
| 3171 | 3171 | <option value="gemini-3-pro-preview">gemini-3-pro-preview</option> |
| 3172 | + <option value="gemini-3-pro-image-preview">gemini-3-pro-image-preview</option> | |
| 3172 | 3173 | </optgroup> |
| 3173 | 3174 | <optgroup label="Gemini 2.5"> |
| 3174 | 3175 | <option value="gemini-2.5-pro">gemini-2.5-pro</option> |
| @@ -3340,6 +3341,7 @@ | ||
| 3340 | 3341 | <!-- data-mode="full" is for models that require a service account --> |
| 3341 | 3342 | <optgroup label="Gemini 3.0"> |
| 3342 | 3343 | <option value="gemini-3-pro-preview">gemini-3-pro-preview</option> |
| 3344 | + <option value="gemini-3-pro-image-preview">gemini-3-pro-image-preview</option> | |
| 3343 | 3345 | </optgroup> |
| 3344 | 3346 | <optgroup label="Gemini 2.5"> |
| 3345 | 3347 | <option value="gemini-2.5-pro">gemini-2.5-pro</option> |
| @@ -105,6 +105,7 @@ | ||
| 105 | 105 | <option data-type="anthropic" value="claude-3-opus-20240229">claude-3-opus-20240229</option> |
| 106 | 106 | <option data-type="anthropic" value="claude-3-haiku-20240307">claude-3-haiku-20240307</option> |
| 107 | 107 | <option data-type="google" value="gemini-3-pro-preview">gemini-3-pro-preview</option> |
| 108 | + <option data-type="google" value="gemini-3-pro-image-preview">gemini-3-pro-image-preview</option> | |
| 108 | 109 | <option data-type="google" value="gemini-2.5-pro">gemini-2.5-pro</option> |
| 109 | 110 | <option data-type="google" value="gemini-2.5-pro-preview-06-05">gemini-2.5-pro-preview-06-05</option> |
| 110 | 111 | <option data-type="google" value="gemini-2.5-pro-preview-05-06">gemini-2.5-pro-preview-05-06</option> |
| @@ -133,6 +134,7 @@ | ||
| 133 | 134 | <option data-type="google" value="learnlm-2.0-flash-experimental">learnlm-2.0-flash-experimental</option> |
| 134 | 135 | <option data-type="google" value="gemini-robotics-er-1.5-preview">gemini-robotics-er-1.5-preview</option> |
| 135 | 136 | <option data-type="vertexai" value="gemini-3-pro-preview">gemini-3-pro-preview</option> |
| 137 | + <option data-type="vertexai" value="gemini-3-pro-image-preview">gemini-3-pro-image-preview</option> | |
| 136 | 138 | <option data-type="vertexai" value="gemini-2.5-pro">gemini-2.5-pro</option> |
| 137 | 139 | <option data-type="vertexai" value="gemini-2.5-flash">gemini-2.5-flash</option> |
| 138 | 140 | <option data-type="vertexai" value="gemini-2.5-flash-lite">gemini-2.5-flash-lite</option> |
| @@ -5154,6 +5154,8 @@ async function onModelChange() { | ||
| 5154 | 5154 | $('#openai_max_context').attr('max', max_2mil); |
| 5155 | 5155 | } else if (value.includes('gemini-2.5-flash-image')) { |
| 5156 | 5156 | $('#openai_max_context').attr('max', max_32k); |
| 5157 | + } else if (value.includes('gemini-3-pro-image')) { | |
| 5158 | + $('#openai_max_context').attr('max', max_64k); | |
| 5157 | 5159 | } else if (value.includes('gemini-3-pro') || value.includes('gemini-2.0-flash') || value.includes('gemini-2.0-pro') || value.includes('gemini-exp') || value.includes('gemini-2.5-flash') || value.includes('gemini-2.5-pro') || value.includes('learnlm-2.0-flash') || value.includes('gemini-robotics')) { |
| 5158 | 5160 | $('#openai_max_context').attr('max', max_1mil); |
| 5159 | 5161 | } else if (value.includes('gemma-3-27b-it')) { |
| @@ -382,6 +382,7 @@ async function sendMakerSuiteRequest(request, response) { | ||
| 382 | 382 | 'gemini-2.0-flash-preview-image-generation', |
| 383 | 383 | 'gemini-2.5-flash-image-preview', |
| 384 | 384 | 'gemini-2.5-flash-image', |
| 385 | + 'gemini-3-pro-image-preview', | |
| 385 | 386 | ]; |
| 386 | 387 | |
| 387 | 388 | const isThinkingConfigModel = m => (/^gemini-2.5-(flash|pro)/.test(m) && !/-image(-preview)?$/.test(m)) || (/^gemini-3-pro/.test(m)); |
| @@ -550,9 +550,15 @@ export function convertGooglePrompt(messages, model, useSysPrompt, names) { | ||
| 550 | 550 | |
| 551 | 551 | // https://ai.google.dev/gemini-api/docs/gemini-3#migrating_from_other_models |
| 552 | 552 | if (/gemini-3/.test(model)) { |
| 553 | + const skipSignatureMagic = 'skip_thought_signature_validator'; | |
| 553 | 554 | parts.filter(p => p.functionCall).forEach(p => { |
| 554 | 555 | p.thoughtSignature = 'context_engineering_is_the_way_to_go'skipSignatureMagic; |
| 555 | 556 | }); |
| 557 | + if (/-image/.test(model) && message.role === 'model') { | |
| 558 | + parts.filter(p => p.text).forEach(p => { | |
| 559 | + p.thoughtSignature = skipSignatureMagic; | |
| 560 | + }); | |
| 561 | + } | |
| 556 | 562 | } |
| 557 | 563 | |
| 558 | 564 | // merge consecutive messages with the same role |