From 6e637287a7c6d8b619dcac0745a7bb09f5c321f2 Mon Sep 17 00:00:00 2001 From: GeorgeDong32 Date: Wed, 17 Dec 2025 22:51:15 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=99=BE=E5=BA=A6=E4=BA=91=E5=8D=83?= =?UTF-8?q?=E5=B8=86=E6=A8=A1=E5=9E=8B=E5=86=85=E7=BD=AE=E8=81=94=E7=BD=91?= =?UTF-8?q?=E6=90=9C=E7=B4=A2=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 为Cherry Studio添加百度云千帆模型的联网搜索功能,基于模型内置的web_search参数。 ## 主要修改 1. **websearch.ts**: 在getWebSearchParams函数中添加百度云支持 - 支持ERNIE系列模型(不含search_mode参数) - 支持ernie-x1-turbo-32k(仅enable参数) - 支持DeepSeek、Qwen3等模型(完整参数) - 包含enable_trace、enable_status、enable_citation等配置 2. **websearch.ts (models)**: 在isWebSearchModel函数中添加百度云模型识别 - 排除BGE嵌入模型 - 其他百度云模型均支持web search ## 使用方式 用户在助手设置中为百度云模型启用联网搜索选项即可。 ## 相关Issue cherry-studio/issues/11958 --- src/renderer/src/aiCore/utils/websearch.ts | 41 +++++++++++++++++++++ src/renderer/src/config/models/websearch.ts | 10 +++++ 2 files changed, 51 insertions(+) diff --git a/src/renderer/src/aiCore/utils/websearch.ts b/src/renderer/src/aiCore/utils/websearch.ts index 14a99139be..feb7520064 100644 --- a/src/renderer/src/aiCore/utils/websearch.ts +++ b/src/renderer/src/aiCore/utils/websearch.ts @@ -25,6 +25,47 @@ export function getWebSearchParams(model: Model): Record { } } + if (model.provider === 'baidu-cloud') { + // 根据模型ID判断支持的搜索参数 + const modelId = model.id.toLowerCase() + + // ernie-x1-turbo-32k 只支持 enable 参数 + if (modelId.includes('ernie-x1-turbo')) { + return { + web_search: { + enable: true + } + } + } + + // ERNIE系列不支持 search_mode 参数(强制搜索) + if (modelId.includes('ernie')) { + return { + web_search: { + enable: true, + enable_trace: true, + enable_status: true, + enable_citation: true, + search_number: 10, + reference_number: 5 + } + } + } + + // 其他模型支持完整参数 + return { + web_search: { + enable: true, + enable_trace: true, + enable_status: true, + enable_citation: true, + search_mode: 'auto', + search_number: 10, + reference_number: 5 + } + } + } + if (isOpenAIWebSearchChatCompletionOnlyModel(model)) { return { web_search_options: {} diff --git a/src/renderer/src/config/models/websearch.ts b/src/renderer/src/config/models/websearch.ts index 5d6706937b..6b2232dd66 100644 --- a/src/renderer/src/config/models/websearch.ts +++ b/src/renderer/src/config/models/websearch.ts @@ -120,6 +120,16 @@ export function isWebSearchModel(model: Model): boolean { return true } + if (provider.id === 'baidu-cloud') { + // 排除嵌入模型 + const embeddingModels = ['bge-large-zh', 'bge-large-en'] + if (embeddingModels.includes(modelId)) { + return false + } + // 其他模型都支持web search + return true + } + return false }