diff --git a/src/renderer/src/aiCore/clients/openai/OpenAIApiClient.ts b/src/renderer/src/aiCore/clients/openai/OpenAIApiClient.ts index 8b58e78899..92e49cec53 100644 --- a/src/renderer/src/aiCore/clients/openai/OpenAIApiClient.ts +++ b/src/renderer/src/aiCore/clients/openai/OpenAIApiClient.ts @@ -639,12 +639,18 @@ export class OpenAIAPIClient extends OpenAIBaseClient< } if (this.provider.id === SystemProviderIds.poe) { // 如果以后 poe 支持 reasoning_effort 参数了,可以删掉这部分 + let suffix = '' if (isGPT5SeriesModel(model) && reasoningEffort.reasoning_effort) { - lastUserMsg.content += ` --reasoning_effort ${reasoningEffort.reasoning_effort}` + suffix = ` --reasoning_effort ${reasoningEffort.reasoning_effort}` } else if (isClaudeReasoningModel(model) && reasoningEffort.thinking?.budget_tokens) { - lastUserMsg.content += ` --thinking_budget ${reasoningEffort.thinking.budget_tokens}` + suffix = ` --thinking_budget ${reasoningEffort.thinking.budget_tokens}` } else if (isGeminiReasoningModel(model) && reasoningEffort.extra_body?.google?.thinking_config) { - lastUserMsg.content += ` --thinking_budget ${reasoningEffort.extra_body.google.thinking_config.thinking_budget}` + suffix = ` --thinking_budget ${reasoningEffort.extra_body.google.thinking_config.thinking_budget}` + } + // FIXME: poe 不支持多个text part,上传文本文件的时候用的不是file part而是text part,因此会出问题 + // 临时解决方案是强制poe用string content,但是其实poe部分支持array + if (typeof lastUserMsg.content === 'string') { + lastUserMsg.content += suffix } } } diff --git a/src/renderer/src/config/providers.ts b/src/renderer/src/config/providers.ts index 2ad123f32f..194d4c20b7 100644 --- a/src/renderer/src/config/providers.ts +++ b/src/renderer/src/config/providers.ts @@ -1262,7 +1262,8 @@ const NOT_SUPPORT_ARRAY_CONTENT_PROVIDERS = [ 'deepseek', 'baichuan', 'minimax', - 'xirang' + 'xirang', + 'poe' ] as const satisfies SystemProviderId[] /**