Merge pull request #2602 from Succubyss/gemini-again Gemini max context size corrections, option selector update
Signed| @@ -2802,23 +2802,26 @@ | |||
| 2802 | <div> | 2802 | <div> |
| 2803 | <h4 data-i18n="Google Model">Google Model</h4> | 2803 | <h4 data-i18n="Google Model">Google Model</h4> |
| 2804 | <select id="model_google_select"> | 2804 | <select id="model_google_select"> |
| 2805 | <optgroup label="Latest"> | 2805 | <optgroup label="Primary"> |
| 2806 | <!-- Doesn't work without "latest". Maybe my key is scuffed? --> | 2806 | <option value="gemini-1.5-pro">Gemini 1.5 Pro</option> |
| 2807 | <option value="gemini-1.5-flash-latest">Gemini 1.5 Flash</option> | 2807 | <option value="gemini-1.5-flash">Gemini 1.5 Flash</option> |
| 2808 | <option value="gemini-1.5-pro-latest">Gemini 1.5 Pro</option> | 2808 | <option value="gemini-1.0-pro">Gemini 1.0 Pro</option> |
| 2809 | <!-- Points to 1.0, no default 1.5 endpoint --> | 2809 | <option value="gemini-pro">Gemini Pro (1.0)</option> |
| 2810 | <option value="gemini-pro">Gemini Pro</option> | 2810 | <option value="gemini-pro-vision">Gemini Pro Vision (1.0)</option> |
| 2811 | <option value="gemini-pro-vision">Gemini Pro Vision</option> | 2811 | <option value="gemini-ultra">Gemini Ultra (1.0)</option> |
| 2812 | <option value="gemini-ultra">Gemini Ultra</option> | 2812 | <option value="gemini-1.0-ultra-latest">Gemini 1.0 Ultra</option> |
| 2813 | <option value="text-bison-001">Bison Text</option> | 2813 | <option value="text-bison-001">PaLM 2 (Legacy)</option> |
| 2814 | <option value="chat-bison-001">Bison Chat</option> | 2814 | <option value="chat-bison-001">PaLM 2 Chat (Legacy)</option> |
| 2815 | </optgroup> | 2815 | </optgroup> |
| 2816 | <optgroup label="Sub-versions"> | 2816 | <optgroup label="Subversions"> |
| 2817 | <option value="gemini-1.5-pro-exp-0801">Gemini 1.5 Pro Experiment 2024-08-01</option> | 2817 | <option value="gemini-1.5-pro-exp-0801">Gemini 1.5 Pro Experiment 2024-08-01</option> |
| 2818 | <option value="gemini-1.5-pro-latest">Gemini 1.5 Pro</option> | 2818 | <option value="gemini-1.5-pro-latest">Gemini 1.5 Pro [latest]</option> |
| 2819 | <option value="gemini-1.0-pro-latest">Gemini 1.0 Pro</option> | 2819 | <option value="gemini-1.5-pro-001">Gemini 1.5 Pro [001]</option> |
| 2820 | <option value="gemini-1.0-pro-vision-latest">Gemini 1.0 Pro Vision</option> | 2820 | <option value="gemini-1.5-flash-latest">Gemini 1.5 Flash [latest]</option> |
| 2821 | <option value="gemini-1.0-ultra-latest">Gemini 1.0 Ultra</option> | 2821 | <option value="gemini-1.5-flash-001">Gemini 1.5 Flash [001]</option> |
| 2822 | <option value="gemini-1.0-pro-latest">Gemini 1.0 Pro [latest]</option> | ||
| 2823 | <option value="gemini-1.0-pro-001">Gemini 1.0 Pro (Tuning) [001]</option> | ||
| 2824 | <option value="gemini-1.0-pro-vision-latest">Gemini 1.0 Pro Vision [latest]</option> | ||
| 2822 | </optgroup> | 2825 | </optgroup> |
| 2823 | </select> | 2826 | </select> |
| 2824 | </div> | 2827 | </div> |
| @@ -127,6 +127,7 @@ const max_128k = 128 * 1000; | |||
| 127 | const max_200k = 200 * 1000; | 127 | const max_200k = 200 * 1000; |
| 128 | const max_256k = 256 * 1000; | 128 | const max_256k = 256 * 1000; |
| 129 | const max_1mil = 1000 * 1000; | 129 | const max_1mil = 1000 * 1000; |
| 130 | const max_2mil = 2000 * 1000; | ||
| 130 | const scale_max = 8191; | 131 | const scale_max = 8191; |
| 131 | const claude_max = 9000; // We have a proper tokenizer, so theoretically could be larger (up to 9k) | 132 | const claude_max = 9000; // We have a proper tokenizer, so theoretically could be larger (up to 9k) |
| 132 | const claude_100k_max = 99000; | 133 | const claude_100k_max = 99000; |
| @@ -260,7 +261,7 @@ const default_settings = { | |||
| 260 | personality_format: default_personality_format, | 261 | personality_format: default_personality_format, |
| 261 | openai_model: 'gpt-4-turbo', | 262 | openai_model: 'gpt-4-turbo', |
| 262 | claude_model: 'claude-3-5-sonnet-20240620', | 263 | claude_model: 'claude-3-5-sonnet-20240620', |
| 263 | google_model: 'gemini-pro', | 264 | google_model: 'gemini-1.5-pro', |
| 264 | ai21_model: 'j2-ultra', | 265 | ai21_model: 'j2-ultra', |
| 265 | mistralai_model: 'mistral-large-latest', | 266 | mistralai_model: 'mistral-large-latest', |
| 266 | cohere_model: 'command-r-plus', | 267 | cohere_model: 'command-r-plus', |
| @@ -340,7 +341,7 @@ const oai_settings = { | |||
| 340 | personality_format: default_personality_format, | 341 | personality_format: default_personality_format, |
| 341 | openai_model: 'gpt-4-turbo', | 342 | openai_model: 'gpt-4-turbo', |
| 342 | claude_model: 'claude-3-5-sonnet-20240620', | 343 | claude_model: 'claude-3-5-sonnet-20240620', |
| 343 | google_model: 'gemini-pro', | 344 | google_model: 'gemini-1.5-pro', |
| 344 | ai21_model: 'j2-ultra', | 345 | ai21_model: 'j2-ultra', |
| 345 | mistralai_model: 'mistral-large-latest', | 346 | mistralai_model: 'mistral-large-latest', |
| 346 | cohere_model: 'command-r-plus', | 347 | cohere_model: 'command-r-plus', |
| @@ -4056,15 +4057,22 @@ async function onModelChange() { | |||
| 4056 | 4057 | ||
| 4057 | if (oai_settings.chat_completion_source == chat_completion_sources.MAKERSUITE) { | 4058 | if (oai_settings.chat_completion_source == chat_completion_sources.MAKERSUITE) { |
| 4058 | if (oai_settings.max_context_unlocked) { | 4059 | if (oai_settings.max_context_unlocked) { |
| 4060 | $('#openai_max_context').attr('max', max_2mil); | ||
| 4061 | } else if (value.includes('gemini-1.5-pro')) { | ||
| 4062 | $('#openai_max_context').attr('max', max_2mil); | ||
| 4063 | } else if (value.includes('gemini-1.5-flash')) { | ||
| 4059 | $('#openai_max_context').attr('max', max_1mil); | 4064 | $('#openai_max_context').attr('max', max_1mil); |
| 4060 | } else if (value === 'gemini-1.5-pro-latest' || value.includes('gemini-1.5-flash')) { | 4065 | } else if (value.includes('gemini-1.0-pro-vision') || value === 'gemini-pro-vision') { |
| 4061 | $('#openai_max_context').attr('max', max_1mil); | ||
| 4062 | } else if (value === 'gemini-ultra' || value === 'gemini-1.0-pro-latest' || value === 'gemini-pro' || value === 'gemini-1.0-ultra-latest') { | ||
| 4063 | $('#openai_max_context').attr('max', max_32k); | ||
| 4064 | } else if (value === 'gemini-1.0-pro-vision-latest' || value === 'gemini-pro-vision') { | ||
| 4065 | $('#openai_max_context').attr('max', max_16k); | 4066 | $('#openai_max_context').attr('max', max_16k); |
| 4066 | } else { | 4067 | } else if (value.includes('gemini-1.0-pro') || value === 'gemini-pro') { |
| 4068 | $('#openai_max_context').attr('max', max_32k); | ||
| 4069 | } else if (value === 'text-bison-001') { | ||
| 4067 | $('#openai_max_context').attr('max', max_8k); | 4070 | $('#openai_max_context').attr('max', max_8k); |
| 4071 | // The ultra endpoints are possibly dead: | ||
| 4072 | } else if (value.includes('gemini-1.0-ultra') || value === 'gemini-ultra') { | ||
| 4073 | $('#openai_max_context').attr('max', max_32k); | ||
| 4074 | } else { | ||
| 4075 | $('#openai_max_context').attr('max', max_4k); | ||
| 4068 | } | 4076 | } |
| 4069 | let makersuite_max_temp = (value.includes('vision') || value.includes('ultra')) ? 1.0 : 2.0; | 4077 | let makersuite_max_temp = (value.includes('vision') || value.includes('ultra')) ? 1.0 : 2.0; |
| 4070 | oai_settings.temp_openai = Math.min(makersuite_max_temp, oai_settings.temp_openai); | 4078 | oai_settings.temp_openai = Math.min(makersuite_max_temp, oai_settings.temp_openai); |
| @@ -271,7 +271,7 @@ async function sendMakerSuiteRequest(request, response) { | |||
| 271 | }; | 271 | }; |
| 272 | 272 | ||
| 273 | function getGeminiBody() { | 273 | function getGeminiBody() { |
| 274 | const should_use_system_prompt = ['gemini-1.5-flash', 'gemini-1.5-pro'].includes(model) && request.body.use_makersuite_sysprompt; | 274 | const should_use_system_prompt = (model.includes('gemini-1.5-flash') || model.includes('gemini-1.5-pro')) && request.body.use_makersuite_sysprompt; |
| 275 | const prompt = convertGooglePrompt(request.body.messages, model, should_use_system_prompt, request.body.char_name, request.body.user_name); | 275 | const prompt = convertGooglePrompt(request.body.messages, model, should_use_system_prompt, request.body.char_name, request.body.user_name); |
| 276 | let body = { | 276 | let body = { |
| 277 | contents: prompt.contents, | 277 | contents: prompt.contents, |