Support Gemini 2.0 Flash-exp

a64c8ade9d53a610abc03d19d0585abc5462e500

M0cho <77959408+M0ch0@users.noreply.github.com>

5 files changed, +11 -2Showing whitespace changes
public/index.html+1 -0
@@ -3014,6 +3014,7 @@
3014 <option value="chat-bison-001">PaLM 2 Chat (Legacy)</option>3014 <option value="chat-bison-001">PaLM 2 Chat (Legacy)</option>
3015 </optgroup>3015 </optgroup>
3016 <optgroup label="Subversions">3016 <optgroup label="Subversions">
3017 <option value="gemini-2.0-flash-exp">Gemini 2.0 Flash Experiment</option>
3017 <option value="gemini-exp-1121">Gemini Experimental 2024-11-21</option>3018 <option value="gemini-exp-1121">Gemini Experimental 2024-11-21</option>
3018 <option value="gemini-exp-1114">Gemini Experimental 2024-11-14</option>3019 <option value="gemini-exp-1114">Gemini Experimental 2024-11-14</option>
3019 <option value="gemini-exp-1206">Gemini Experimental 2024-12-06</option>3020 <option value="gemini-exp-1206">Gemini Experimental 2024-12-06</option>
public/scripts/extensions/caption/settings.html+1 -0
@@ -53,6 +53,7 @@
53 <option data-type="anthropic" value="claude-3-opus-20240229">claude-3-opus-20240229</option>53 <option data-type="anthropic" value="claude-3-opus-20240229">claude-3-opus-20240229</option>
54 <option data-type="anthropic" value="claude-3-sonnet-20240229">claude-3-sonnet-20240229</option>54 <option data-type="anthropic" value="claude-3-sonnet-20240229">claude-3-sonnet-20240229</option>
55 <option data-type="anthropic" value="claude-3-haiku-20240307">claude-3-haiku-20240307</option>55 <option data-type="anthropic" value="claude-3-haiku-20240307">claude-3-haiku-20240307</option>
56 <option data-type="google" value="gemini-2.0-flash-exp">gemini-2.0-flash-exp</option>
56 <option data-type="google" value="gemini-1.5-flash">gemini-1.5-flash</option>57 <option data-type="google" value="gemini-1.5-flash">gemini-1.5-flash</option>
57 <option data-type="google" value="gemini-1.5-flash-latest">gemini-1.5-flash-latest</option>58 <option data-type="google" value="gemini-1.5-flash-latest">gemini-1.5-flash-latest</option>
58 <option data-type="google" value="gemini-1.5-flash-001">gemini-1.5-flash-001</option>59 <option data-type="google" value="gemini-1.5-flash-001">gemini-1.5-flash-001</option>
public/scripts/openai.js+1 -1
@@ -4081,7 +4081,7 @@ async function onModelChange() {
4081 $('#openai_max_context').attr('max', max_32k);4081 $('#openai_max_context').attr('max', max_32k);
4082 } else if (value.includes('gemini-1.5-pro') || value.includes('gemini-exp-1206')) {4082 } else if (value.includes('gemini-1.5-pro') || value.includes('gemini-exp-1206')) {
4083 $('#openai_max_context').attr('max', max_2mil);4083 $('#openai_max_context').attr('max', max_2mil);
4084 } else if (value.includes('gemini-1.5-flash')) {4084 } else if (value.includes('gemini-1.5-flash') || value.includes('gemini-2.0-flash-exp')) {
4085 $('#openai_max_context').attr('max', max_1mil);4085 $('#openai_max_context').attr('max', max_1mil);
4086 } else if (value.includes('gemini-1.0-pro-vision') || value === 'gemini-pro-vision') {4086 } else if (value.includes('gemini-1.0-pro-vision') || value === 'gemini-pro-vision') {
4087 $('#openai_max_context').attr('max', max_16k);4087 $('#openai_max_context').attr('max', max_16k);
src/endpoints/backends/chat-completions.js+7 -1
@@ -280,7 +280,13 @@ async function sendMakerSuiteRequest(request, response) {
280 delete generationConfig.stopSequences;280 delete generationConfig.stopSequences;
281 }281 }
282282
283 const should_use_system_prompt = (model.includes('gemini-1.5-flash') || model.includes('gemini-1.5-pro') || model.startsWith('gemini-exp')) && request.body.use_makersuite_sysprompt;283 const should_use_system_prompt = (
284 model.includes('gemini-2.0-flash-exp') ||
285 model.includes('gemini-1.5-flash') ||
286 model.includes('gemini-1.5-pro') ||
287 model.startsWith('gemini-exp')
288 ) && request.body.use_makersuite_sysprompt;
289
284 const prompt = convertGooglePrompt(request.body.messages, model, should_use_system_prompt, request.body.char_name, request.body.user_name);290 const prompt = convertGooglePrompt(request.body.messages, model, should_use_system_prompt, request.body.char_name, request.body.user_name);
285 let body = {291 let body = {
286 contents: prompt.contents,292 contents: prompt.contents,
src/prompt-converters.js+1 -0
@@ -337,6 +337,7 @@ export function convertGooglePrompt(messages, model, useSysPrompt = false, charN
337 const PNG_PIXEL = 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=';337 const PNG_PIXEL = 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=';
338338
339 const visionSupportedModels = [339 const visionSupportedModels = [
340 'gemini-2.0-flash-exp',
340 'gemini-1.5-flash',341 'gemini-1.5-flash',
341 'gemini-1.5-flash-latest',342 'gemini-1.5-flash-latest',
342 'gemini-1.5-flash-001',343 'gemini-1.5-flash-001',