From 2b6d02f47007f247c296d1def328489bdb9c77c1 Mon Sep 17 00:00:00 2001 From: SuYao Date: Sun, 25 May 2025 21:13:29 +0800 Subject: [PATCH] fix: enhance web search recognization in AI providers (#6423) --- src/renderer/src/providers/AiProvider/AnthropicProvider.ts | 2 +- src/renderer/src/providers/AiProvider/OpenAIProvider.ts | 3 ++- .../src/providers/AiProvider/OpenAIResponseProvider.ts | 5 +++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/renderer/src/providers/AiProvider/AnthropicProvider.ts b/src/renderer/src/providers/AiProvider/AnthropicProvider.ts index 6b79fc898f..703fa4b921 100644 --- a/src/renderer/src/providers/AiProvider/AnthropicProvider.ts +++ b/src/renderer/src/providers/AiProvider/AnthropicProvider.ts @@ -254,7 +254,7 @@ export default class AnthropicProvider extends BaseProvider { } } - const isEnabledBuiltinWebSearch = assistant.enableWebSearch + const isEnabledBuiltinWebSearch = assistant.enableWebSearch && isWebSearchModel(model) if (isEnabledBuiltinWebSearch) { const webSearchTool = await this.getWebSearchParams(model) diff --git a/src/renderer/src/providers/AiProvider/OpenAIProvider.ts b/src/renderer/src/providers/AiProvider/OpenAIProvider.ts index 3e3a6e432a..31e8082f8c 100644 --- a/src/renderer/src/providers/AiProvider/OpenAIProvider.ts +++ b/src/renderer/src/providers/AiProvider/OpenAIProvider.ts @@ -15,6 +15,7 @@ import { isSupportedThinkingTokenModel, isSupportedThinkingTokenQwenModel, isVisionModel, + isWebSearchModel, isZhipuModel } from '@renderer/config/models' import { getStoreSetting } from '@renderer/hooks/useSettings' @@ -371,7 +372,7 @@ export default class OpenAIProvider extends BaseOpenAIProvider { const model = assistant.model || defaultModel const { contextCount, maxTokens, streamOutput } = getAssistantSettings(assistant) - const isEnabledBultinWebSearch = assistant.enableWebSearch + const isEnabledBultinWebSearch = assistant.enableWebSearch && isWebSearchModel(model) messages = addImageFileToContents(messages) const enableReasoning = ((isSupportedThinkingTokenModel(model) || isSupportedReasoningEffortModel(model)) && diff --git a/src/renderer/src/providers/AiProvider/OpenAIResponseProvider.ts b/src/renderer/src/providers/AiProvider/OpenAIResponseProvider.ts index 5005cdd7c4..e6fa668f30 100644 --- a/src/renderer/src/providers/AiProvider/OpenAIResponseProvider.ts +++ b/src/renderer/src/providers/AiProvider/OpenAIResponseProvider.ts @@ -5,7 +5,8 @@ import { isSupportedFlexServiceTier, isSupportedModel, isSupportedReasoningEffortOpenAIModel, - isVisionModel + isVisionModel, + isWebSearchModel } from '@renderer/config/models' import { getStoreSetting } from '@renderer/hooks/useSettings' import i18n from '@renderer/i18n' @@ -317,7 +318,7 @@ export abstract class BaseOpenAIProvider extends BaseProvider { const model = assistant.model || defaultModel const { contextCount, maxTokens, streamOutput } = getAssistantSettings(assistant) - const isEnabledBuiltinWebSearch = assistant.enableWebSearch + const isEnabledBuiltinWebSearch = assistant.enableWebSearch && isWebSearchModel(model) let tools: OpenAI.Responses.Tool[] = [] const toolChoices: OpenAI.Responses.ToolChoiceTypes = {