Merge pull request #2602 from Succubyss/gemini-again Gemini max context size corrections, option selector update

73e3acbd51c373acb259d18e86c87dcce6b754ee

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

Signed
3 files changed, +35 -24Showing whitespace changes
public/index.html+18 -15
@@ -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>
public/scripts/openai.js+16 -8
@@ -127,6 +127,7 @@ const max_128k = 128 * 1000;
127const max_200k = 200 * 1000;127const max_200k = 200 * 1000;
128const max_256k = 256 * 1000;128const max_256k = 256 * 1000;
129const max_1mil = 1000 * 1000;129const max_1mil = 1000 * 1000;
130const max_2mil = 2000 * 1000;
130const scale_max = 8191;131const scale_max = 8191;
131const claude_max = 9000; // We have a proper tokenizer, so theoretically could be larger (up to 9k)132const claude_max = 9000; // We have a proper tokenizer, so theoretically could be larger (up to 9k)
132const claude_100k_max = 99000;133const 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() {
40564057
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);
src/endpoints/backends/chat-completions.js+1 -1
@@ -271,7 +271,7 @@ async function sendMakerSuiteRequest(request, response) {
271 };271 };
272272
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,