diff --git a/src/renderer/src/config/models/reasoning.ts b/src/renderer/src/config/models/reasoning.ts index 3f55f13a3a..545d759363 100644 --- a/src/renderer/src/config/models/reasoning.ts +++ b/src/renderer/src/config/models/reasoning.ts @@ -178,9 +178,13 @@ export function isGeminiReasoningModel(model?: Model): boolean { return false } +// Gemini 支持思考模式的模型正则 +export const GEMINI_THINKING_MODEL_REGEX = + /gemini-(?:2\.5.*(?:-latest)?|flash-latest|pro-latest|flash-lite-latest)(?:-[\w-]+)*$/i + export const isSupportedThinkingTokenGeminiModel = (model: Model): boolean => { const modelId = getLowerBaseModelName(model.id, '/') - if (modelId.includes('gemini-2.5')) { + if (GEMINI_THINKING_MODEL_REGEX.test(modelId)) { if (modelId.includes('image') || modelId.includes('tts')) { return false } diff --git a/src/renderer/src/config/models/vision.ts b/src/renderer/src/config/models/vision.ts index 02ed3cd6fc..85eca139c4 100644 --- a/src/renderer/src/config/models/vision.ts +++ b/src/renderer/src/config/models/vision.ts @@ -12,6 +12,7 @@ const visionAllowedModels = [ 'gemini-1\\.5', 'gemini-2\\.0', 'gemini-2\\.5', + 'gemini-(flash|pro|flash-lite)-latest', 'gemini-exp', 'claude-3', 'claude-sonnet-4', diff --git a/src/renderer/src/config/models/websearch.ts b/src/renderer/src/config/models/websearch.ts index 4acc8a7836..ecdf1bec37 100644 --- a/src/renderer/src/config/models/websearch.ts +++ b/src/renderer/src/config/models/websearch.ts @@ -11,9 +11,12 @@ export const CLAUDE_SUPPORTED_WEBSEARCH_REGEX = new RegExp( 'i' ) -export const GEMINI_FLASH_MODEL_REGEX = new RegExp('gemini-.*-flash.*$') +export const GEMINI_FLASH_MODEL_REGEX = new RegExp('gemini.*-flash.*$') -export const GEMINI_SEARCH_REGEX = new RegExp('gemini-2\\..*', 'i') +export const GEMINI_SEARCH_REGEX = new RegExp( + 'gemini-(?:2.*(?:-latest)?|flash-latest|pro-latest|flash-lite-latest)(?:-[\\w-]+)*$', + 'i' +) export const PERPLEXITY_SEARCH_MODELS = [ 'sonar-pro',