feat: Enhance web search parameter handling for assistants #575

This commit is contained in:
kangfenmao 2025-02-05 20:35:25 +08:00
parent 62bcb0582e
commit d4ddcbfc5b
3 changed files with 16 additions and 10 deletions

View File

@ -123,7 +123,7 @@ import WenxinModelLogoDark from '@renderer/assets/images/models/wenxin_dark.png'
import YiModelLogo from '@renderer/assets/images/models/yi.png' import YiModelLogo from '@renderer/assets/images/models/yi.png'
import YiModelLogoDark from '@renderer/assets/images/models/yi_dark.png' import YiModelLogoDark from '@renderer/assets/images/models/yi_dark.png'
import { getProviderByModel } from '@renderer/services/AssistantService' import { getProviderByModel } from '@renderer/services/AssistantService'
import { Model } from '@renderer/types' import { Assistant, Model } from '@renderer/types'
import OpenAI from 'openai' import OpenAI from 'openai'
import { getWebSearchTools } from './tools' import { getWebSearchTools } from './tools'
@ -1182,16 +1182,22 @@ export function isWebSearchModel(model: Model): boolean {
return false return false
} }
export function getOpenAIWebSearchParams(model: Model): Record<string, any> { export function getOpenAIWebSearchParams(assistant: Assistant, model: Model): Record<string, any> {
if (isWebSearchModel(model)) { if (isWebSearchModel(model)) {
const webSearchTools = getWebSearchTools(model) if (assistant.enableWebSearch) {
const webSearchTools = getWebSearchTools(model)
if (model.provider === 'hunyuan') { if (model.provider === 'hunyuan') {
return { enable_enhancement: true } return { enable_enhancement: true }
} }
return { return {
tools: webSearchTools tools: webSearchTools
}
} else {
if (model.provider === 'hunyuan') {
return { enable_enhancement: false }
}
} }
} }

View File

@ -193,7 +193,7 @@ export default class OpenAIProvider extends BaseProvider {
keep_alive: this.keepAliveTime, keep_alive: this.keepAliveTime,
stream: isSupportStreamOutput(), stream: isSupportStreamOutput(),
reasoning_effort: this.getReasoningEffort(assistant, model), reasoning_effort: this.getReasoningEffort(assistant, model),
...(assistant.enableWebSearch ? getOpenAIWebSearchParams(model) : {}), ...getOpenAIWebSearchParams(assistant, model),
...this.getProviderSpecificParameters(model), ...this.getProviderSpecificParameters(model),
...this.getCustomParameters(assistant) ...this.getCustomParameters(assistant)
}) })

View File

@ -120,7 +120,7 @@ class QwenLMProvider extends OpenAIProvider {
top_p: assistant?.settings?.topP, top_p: assistant?.settings?.topP,
max_tokens: maxTokens, max_tokens: maxTokens,
stream: true, stream: true,
...(assistant.enableWebSearch ? getOpenAIWebSearchParams(model) : {}), ...getOpenAIWebSearchParams(assistant, model),
...this.getCustomParameters(assistant) ...this.getCustomParameters(assistant)
}) })