feat: added openai model configuration and search parameter logic

This commit is contained in:
kangfenmao 2025-01-13 16:42:53 +08:00
parent 2ad6a1f24c
commit a0a13a4015
2 changed files with 23 additions and 3 deletions

View File

@ -603,6 +603,12 @@ export const SYSTEM_MODELS: Record<string, Model[]> = {
name: 'GLM-4-Flash',
group: 'GLM-4'
},
{
id: 'glm-4-flashx',
provider: 'zhipu',
name: 'GLM-4-FlashX',
group: 'GLM-4'
},
{
id: 'glm-4v',
provider: 'zhipu',
@ -1050,6 +1056,12 @@ export function isWebSearchModel(model: Model): boolean {
const provider = getProviderByModel(model)
if (provider.type === 'openai') {
if (model?.id?.includes('gemini-2.0-flash-exp')) {
return true
}
}
if (!provider) {
return false
}
@ -1073,7 +1085,7 @@ export function isWebSearchModel(model: Model): boolean {
return false
}
export function getWebSearchParams(model: Model): Record<string, any> {
export function getOpenAIWebSearchParams(model: Model): Record<string, any> {
if (isWebSearchModel(model)) {
if (model.provider === 'hunyuan') {
return { enable_enhancement: true }
@ -1087,6 +1099,14 @@ export function getWebSearchParams(model: Model): Record<string, any> {
tools: webSearchTools
}
}
return {
type: 'function',
function: {
name: 'googleSearch'
}
}
}
return {}
}

View File

@ -1,4 +1,4 @@
import { getWebSearchParams, isSupportedModel, isVisionModel } from '@renderer/config/models'
import { getOpenAIWebSearchParams, isSupportedModel, isVisionModel } from '@renderer/config/models'
import { getStoreSetting } from '@renderer/hooks/useSettings'
import i18n from '@renderer/i18n'
import { getAssistantSettings, getDefaultModel, getTopNamingModel } from '@renderer/services/AssistantService'
@ -155,7 +155,7 @@ export default class OpenAIProvider extends BaseProvider {
max_tokens: maxTokens,
keep_alive: this.keepAliveTime,
stream: isSupportStreamOutput(),
...(assistant.enableWebSearch ? getWebSearchParams(model) : {}),
...(assistant.enableWebSearch ? getOpenAIWebSearchParams(model) : {}),
...this.getCustomParameters(assistant)
})