Merge pull request #3900 from equal-l2/vision-cleanup Vision cleanup

6848b38bb7d99c27a4b85a2dd35ca8d64ebcda6d

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

Signed
2 files changed, +29 -93Ignore whitespace
public/scripts/openai.js+26 -55
@@ -5132,73 +5132,44 @@ export function isImageInliningSupported() {
51325132
51335133 // gultra just isn't being offered as multimodal, thanks google.
51345134 const visionSupportedModels = [
5135- 'gpt-4-vision',
5135+ // OpenAI
5136- 'gemini-2.5-pro-exp-03-25',
5136+ 'chatgpt-4o-latest',
5137- 'gemini-2.5-pro-preview-03-25',
5138- 'gemini-2.0-pro-exp',
5139- 'gemini-2.0-pro-exp-02-05',
5140- 'gemini-2.5-flash-preview-04-17',
5141- 'gemini-2.0-flash-lite-preview',
5142- 'gemini-2.0-flash-lite-preview-02-05',
5143- 'gemini-2.0-flash',
5144- 'gemini-2.0-flash-001',
5145- 'gemini-2.0-flash-thinking-exp-1219',
5146- 'gemini-2.0-flash-thinking-exp-01-21',
5147- 'gemini-2.0-flash-thinking-exp',
5148- 'gemini-2.0-flash-exp',
5149- 'gemini-2.0-flash-exp-image-generation',
5150- 'gemini-1.5-flash',
5151- 'gemini-1.5-flash-latest',
5152- 'gemini-1.5-flash-001',
5153- 'gemini-1.5-flash-002',
5154- 'gemini-1.5-flash-exp-0827',
5155- 'gemini-1.5-flash-8b',
5156- 'gemini-1.5-flash-8b-exp-0827',
5157- 'gemini-1.5-flash-8b-exp-0924',
5158- 'gemini-exp-1114',
5159- 'gemini-exp-1121',
5160- 'gemini-exp-1206',
5161- 'gemini-1.0-pro-vision-latest',
5162- 'gemini-1.5-pro',
5163- 'gemini-1.5-pro-latest',
5164- 'gemini-1.5-pro-001',
5165- 'gemini-1.5-pro-002',
5166- 'gemini-1.5-pro-exp-0801',
5167- 'gemini-1.5-pro-exp-0827',
5168- 'claude-3',
5169- 'claude-3-5',
5170- 'claude-3-7',
51715137 'gpt-4-turbo',
51725138 'gpt-4o4-vision',
51735139 'gpt-4o-mini4.1',
51745140 'gpt-4.5-preview',
51755141 'gpt-4.5-preview-2025-02-274o',
51765142 'o1',
51775143 'o1-2024-12-17o3',
51785144 'chatgpt-4oo4-latestmini',
5145+ // 01.AI (Yi)
51795146 'yi-vision',
5180- 'mistral-large-pixtral-2411',
5147+ // Claude
5148+ 'claude-3',
5149+ // Cohere
5150+ 'c4ai-aya-vision',
5151+ // Google AI Studio
5152+ 'gemini-1.5',
5153+ 'gemini-2.0',
5154+ 'gemini-2.5',
5155+ 'gemini-exp-1114',
5156+ 'gemini-exp-1121',
5157+ 'gemini-exp-1206',
5158+ // MistralAI
51815159 'mistral-small-2503',
51825160 'mistral-small-latest',
51835161 'pixtral-12b-latest',
5184- 'pixtral-12b',
5162+ // xAI (Grok)
5185- 'pixtral-12b-2409',
5186- 'pixtral-large-latest',
5187- 'pixtral-large-2411',
5188- 'c4ai-aya-vision-8b',
5189- 'c4ai-aya-vision-32b',
51905163 'grok-2-vision',
51915164 'grok-vision',
5192- 'gpt-4.1',
5193- 'o3',
5194- 'o3-2025-04-16',
5195- 'o4-mini',
5196- 'o4-mini-2025-04-16',
51975165 ];
51985166
51995167 switch (oai_settings.chat_completion_source) {
52005168 case chat_completion_sources.OPENAI:
5201- return visionSupportedModels.some(model => oai_settings.openai_model.includes(model) && !oai_settings.openai_model.includes('gpt-4-turbo-preview') && !oai_settings.openai_model.includes('o3-mini'));
5169+ return visionSupportedModels.some(model =>
5170+ oai_settings.openai_model.includes(model)
5171+ && ['gpt-4-turbo-preview', 'o1-mini', 'o3-mini'].some(x => !oai_settings.openai_model.includes(x))
5172+ );
52025173 case chat_completion_sources.MAKERSUITE:
52035174 return visionSupportedModels.some(model => oai_settings.google_model.includes(model));
52045175 case chat_completion_sources.CLAUDE:
src/prompt-converters.js+3 -38
@@ -357,47 +357,12 @@ export function convertCohereMessages(messages, names) {
357357/**
358358 * Convert a prompt from the ChatML objects to the format used by Google MakerSuite models.
359359 * @param {object[]} messages Array of messages
360360 * @param {string} model_model Model name
361361 * @param {boolean} useSysPrompt Use system prompt
362362 * @param {PromptNames} names Prompt names
363363 * @returns {{contents: *[], system_instruction: {parts: {text: string}[]}}} Prompt for Google MakerSuite models
364364 */
365365export function convertGooglePrompt(messages, model_model, useSysPrompt, names) {
366- const visionSupportedModels = [
367- 'gemini-2.5-pro-preview-03-25',
368- 'gemini-2.5-pro-exp-03-25',
369- 'gemini-2.0-pro-exp',
370- 'gemini-2.0-pro-exp-02-05',
371- 'gemini-2.5-flash-preview-04-17',
372- 'gemini-2.0-flash-lite-preview',
373- 'gemini-2.0-flash-lite-preview-02-05',
374- 'gemini-2.0-flash',
375- 'gemini-2.0-flash-001',
376- 'gemini-2.0-flash-thinking-exp',
377- 'gemini-2.0-flash-thinking-exp-01-21',
378- 'gemini-2.0-flash-thinking-exp-1219',
379- 'gemini-2.0-flash-exp',
380- 'gemini-2.0-flash-exp-image-generation',
381- 'gemini-1.5-flash',
382- 'gemini-1.5-flash-latest',
383- 'gemini-1.5-flash-001',
384- 'gemini-1.5-flash-002',
385- 'gemini-1.5-flash-exp-0827',
386- 'gemini-1.5-flash-8b',
387- 'gemini-1.5-flash-8b-exp-0827',
388- 'gemini-1.5-flash-8b-exp-0924',
389- 'gemini-exp-1114',
390- 'gemini-exp-1121',
391- 'gemini-exp-1206',
392- 'gemini-1.5-pro',
393- 'gemini-1.5-pro-latest',
394- 'gemini-1.5-pro-001',
395- 'gemini-1.5-pro-002',
396- 'gemini-1.5-pro-exp-0801',
397- 'gemini-1.5-pro-exp-0827',
398- ];
399-
400- const isMultimodal = visionSupportedModels.includes(model);
401366 const sysPrompt = [];
402367
403368 if (useSysPrompt) {
@@ -497,7 +462,7 @@ export function convertGooglePrompt(messages, model, useSysPrompt, names) {
497462
498463 toolNameMap[toolCall.id] = toolCall.function.name;
499464 });
500465 } else if (part.type === 'image_url' && isMultimodal) {
501466 const mimeType = part.image_url.url.split(';')[0].split(':')[1];
502467 const base64Data = part.image_url.url.split(',')[1];
503468 parts.push({