Hotfix/gemini-para-bug (#6173)

* fix(OpenAIProvider): enhance model support and formatting logic

* fix(OpenAIProvider): Gemini OpenAI Compatible
This commit is contained in:
SuYao 2025-05-19 17:34:35 +08:00 committed by GitHub
parent 3dc0a583ec
commit 783bdc40a6
2 changed files with 10 additions and 16 deletions

View File

@ -266,10 +266,7 @@ export default class OpenAIProvider extends BaseOpenAIProvider {
return { reasoning: { maxTokens: 0, exclude: true } }
}
return {
thinkingConfig: {
includeThoughts: false,
thinkingBudget: 0
}
reasoning_effort: 'none'
}
}
@ -315,7 +312,7 @@ export default class OpenAIProvider extends BaseOpenAIProvider {
}
// OpenAI models
if (isSupportedReasoningEffortOpenAIModel(model)) {
if (isSupportedReasoningEffortOpenAIModel(model) || isSupportedThinkingTokenGeminiModel(model)) {
return {
reasoning_effort: assistant?.settings?.reasoning_effort
}
@ -332,16 +329,6 @@ export default class OpenAIProvider extends BaseOpenAIProvider {
}
}
// Gemini models
if (isSupportedThinkingTokenGeminiModel(model)) {
return {
thinkingConfig: {
thinkingBudget: budgetTokens,
includeThoughts: true
}
}
}
// Default case: no special thinking settings
return {}
}
@ -395,6 +382,12 @@ export default class OpenAIProvider extends BaseOpenAIProvider {
content: `Formatting re-enabled${systemMessage ? '\n' + systemMessage.content : ''}`
}
}
if (model.id.includes('o1-preview') || model.id.includes('o1-mini')) {
systemMessage = {
role: 'assistant',
content: `Formatting re-enabled${systemMessage ? '\n' + systemMessage.content : ''}`
}
}
const { tools } = this.setupToolsConfig<ChatCompletionTool>({
mcpTools,
model,

View File

@ -290,6 +290,7 @@ export abstract class BaseOpenAIProvider extends BaseProvider {
}
const defaultModel = getDefaultModel()
const model = assistant.model || defaultModel
const { contextCount, maxTokens, streamOutput } = getAssistantSettings(assistant)
const isEnabledBuiltinWebSearch = assistant.enableWebSearch
@ -1138,7 +1139,7 @@ export default class OpenAIResponseProvider extends BaseOpenAIProvider {
}
private getProvider(model: Model): BaseOpenAIProvider {
if (isOpenAIWebSearch(model)) {
if (isOpenAIWebSearch(model) || model.id.includes('o1-preview') || model.id.includes('o1-mini')) {
return this.providers.get('openai-compatible')!
} else {
return this