From 9f948e1ce7138d659d4cf19c8e3e199b4163ec68 Mon Sep 17 00:00:00 2001 From: sxjeru Date: Sat, 20 Dec 2025 20:14:40 +0800 Subject: [PATCH] fix(parameterBuilder): enhance urlContext validation for supported providers and models (#12046) * fix(parameterBuilder): enhance urlContext validation for supported providers and models Signed-off-by: sxjeru * fix(parameterBuilder): improve urlContext validation logic for supported models Signed-off-by: sxjeru --------- Signed-off-by: sxjeru --- .../src/aiCore/prepareParams/parameterBuilder.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/renderer/src/aiCore/prepareParams/parameterBuilder.ts b/src/renderer/src/aiCore/prepareParams/parameterBuilder.ts index cba7fcdb10..52234c5f1f 100644 --- a/src/renderer/src/aiCore/prepareParams/parameterBuilder.ts +++ b/src/renderer/src/aiCore/prepareParams/parameterBuilder.ts @@ -21,6 +21,7 @@ import { isGrokModel, isOpenAIModel, isOpenRouterBuiltInWebSearchModel, + isPureGenerateImageModel, isSupportedReasoningEffortModel, isSupportedThinkingTokenModel, isWebSearchModel @@ -33,7 +34,7 @@ import { type Assistant, type MCPTool, type Provider, SystemProviderIds } from ' import type { StreamTextParams } from '@renderer/types/aiCoreTypes' import { mapRegexToPatterns } from '@renderer/utils/blacklistMatchPattern' import { replacePromptVariables } from '@renderer/utils/prompt' -import { isAIGatewayProvider, isAwsBedrockProvider } from '@renderer/utils/provider' +import { isAIGatewayProvider, isAwsBedrockProvider, isSupportUrlContextProvider } from '@renderer/utils/provider' import type { ModelMessage, Tool } from 'ai' import { stepCountIs } from 'ai' @@ -118,7 +119,13 @@ export async function buildStreamTextParams( isOpenRouterBuiltInWebSearchModel(model) || model.id.includes('sonar')) - const enableUrlContext = assistant.enableUrlContext || false + // Validate provider and model support to prevent stale state from triggering urlContext + const enableUrlContext = !!( + assistant.enableUrlContext && + isSupportUrlContextProvider(provider) && + !isPureGenerateImageModel(model) && + (isGeminiModel(model) || isAnthropicModel(model)) + ) const enableGenerateImage = !!(isGenerateImageModel(model) && assistant.enableGenerateImage)