From 736953f03e0bbd07b6e9dbb20fbe48ec8b55332e Mon Sep 17 00:00:00 2001 From: SuYao Date: Tue, 29 Apr 2025 09:02:39 +0800 Subject: [PATCH] fix(GeminiProvider): enhance image generation logic and response configuration (#5447) * feat(GeminiProvider): enhance image generation logic and response configuration * refactor(GeminiProvider): improve image generation logic readability --- .../src/providers/AiProvider/GeminiProvider.ts | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/renderer/src/providers/AiProvider/GeminiProvider.ts b/src/renderer/src/providers/AiProvider/GeminiProvider.ts index 446f2911c0..f1d939d941 100644 --- a/src/renderer/src/providers/AiProvider/GeminiProvider.ts +++ b/src/renderer/src/providers/AiProvider/GeminiProvider.ts @@ -275,12 +275,21 @@ export default class GeminiProvider extends BaseProvider { }) } + let canGenerateImage = false + if (isGenerateImageModel(model)) { + if (model.id === 'gemini-2.0-flash-exp') { + canGenerateImage = assistant.enableGenerateImage! + } else { + canGenerateImage = true + } + } + const generateContentConfig: GenerateContentConfig = { - responseModalities: isGenerateImageModel(model) ? [Modality.TEXT, Modality.IMAGE] : undefined, - responseMimeType: isGenerateImageModel(model) ? 'text/plain' : undefined, + responseModalities: canGenerateImage ? [Modality.TEXT, Modality.IMAGE] : undefined, + responseMimeType: canGenerateImage ? 'text/plain' : undefined, safetySettings: this.getSafetySettings(model.id), // generate image don't need system instruction - systemInstruction: isGemmaModel(model) || isGenerateImageModel(model) ? undefined : systemInstruction, + systemInstruction: isGemmaModel(model) || canGenerateImage ? undefined : systemInstruction, temperature: assistant?.settings?.temperature, topP: assistant?.settings?.topP, maxOutputTokens: maxTokens,