feat: Enhance web search parameter handling for assistants #575

This commit is contained in:
kangfenmao 2025-02-05 20:35:25 +08:00
parent 65cc51ea94
commit 777455f167
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 YiModelLogoDark from '@renderer/assets/images/models/yi_dark.png'
import { getProviderByModel } from '@renderer/services/AssistantService'
import { Model } from '@renderer/types'
import { Assistant, Model } from '@renderer/types'
import OpenAI from 'openai'
import { getWebSearchTools } from './tools'
@ -1182,16 +1182,22 @@ export function isWebSearchModel(model: Model): boolean {
return false
}
export function getOpenAIWebSearchParams(model: Model): Record<string, any> {
export function getOpenAIWebSearchParams(assistant: Assistant, model: Model): Record<string, any> {
if (isWebSearchModel(model)) {
const webSearchTools = getWebSearchTools(model)
if (assistant.enableWebSearch) {
const webSearchTools = getWebSearchTools(model)
if (model.provider === 'hunyuan') {
return { enable_enhancement: true }
}
if (model.provider === 'hunyuan') {
return { enable_enhancement: true }
}
return {
tools: webSearchTools
return {
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,
stream: isSupportStreamOutput(),
reasoning_effort: this.getReasoningEffort(assistant, model),
...(assistant.enableWebSearch ? getOpenAIWebSearchParams(model) : {}),
...getOpenAIWebSearchParams(assistant, model),
...this.getProviderSpecificParameters(model),
...this.getCustomParameters(assistant)
})

View File

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