From 55c78382e407c98bebb9cb8c8c3a8b4734c76fd3 Mon Sep 17 00:00:00 2001 From: Wang Jiyuan <59059173+EurFelux@users.noreply.github.com> Date: Mon, 12 May 2025 18:19:03 +0800 Subject: [PATCH] feat: minimize token usage when testing model (#5905) --- src/renderer/src/providers/AiProvider/AnthropicProvider.ts | 2 +- src/renderer/src/providers/AiProvider/GeminiProvider.ts | 4 ++-- .../src/providers/AiProvider/OpenAICompatibleProvider.ts | 3 +++ src/renderer/src/providers/AiProvider/OpenAIProvider.ts | 4 +++- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/renderer/src/providers/AiProvider/AnthropicProvider.ts b/src/renderer/src/providers/AiProvider/AnthropicProvider.ts index 3f2929bdd0..c7cc3b37ed 100644 --- a/src/renderer/src/providers/AiProvider/AnthropicProvider.ts +++ b/src/renderer/src/providers/AiProvider/AnthropicProvider.ts @@ -678,7 +678,7 @@ export default class AnthropicProvider extends BaseProvider { const body = { model: model.id, messages: [{ role: 'user' as const, content: 'hi' }], - max_tokens: 100, + max_tokens: 2, // api文档写的 x>1 stream } diff --git a/src/renderer/src/providers/AiProvider/GeminiProvider.ts b/src/renderer/src/providers/AiProvider/GeminiProvider.ts index 0a49ebe573..e45dc134bd 100644 --- a/src/renderer/src/providers/AiProvider/GeminiProvider.ts +++ b/src/renderer/src/providers/AiProvider/GeminiProvider.ts @@ -916,7 +916,7 @@ export default class GeminiProvider extends BaseProvider { model: model.id, contents: [{ role: 'user', parts: [{ text: 'hi' }] }], config: { - maxOutputTokens: 100 + maxOutputTokens: 1 } }) if (isEmpty(result.text)) { @@ -927,7 +927,7 @@ export default class GeminiProvider extends BaseProvider { model: model.id, contents: [{ role: 'user', parts: [{ text: 'hi' }] }], config: { - maxOutputTokens: 100 + maxOutputTokens: 1 } }) // 等待整个流式响应结束 diff --git a/src/renderer/src/providers/AiProvider/OpenAICompatibleProvider.ts b/src/renderer/src/providers/AiProvider/OpenAICompatibleProvider.ts index 54df45ed98..33675a0885 100644 --- a/src/renderer/src/providers/AiProvider/OpenAICompatibleProvider.ts +++ b/src/renderer/src/providers/AiProvider/OpenAICompatibleProvider.ts @@ -1112,6 +1112,9 @@ export default class OpenAICompatibleProvider extends BaseOpenAiProvider { const body = { model: model.id, messages: [{ role: 'user', content: 'hi' }], + max_completion_tokens: 1, // openAI + max_tokens: 1, // openAI deprecated 但大部分OpenAI兼容的提供商继续用这个头 + enable_thinking: false, // qwen3 stream } diff --git a/src/renderer/src/providers/AiProvider/OpenAIProvider.ts b/src/renderer/src/providers/AiProvider/OpenAIProvider.ts index 154b1a7357..122f87888d 100644 --- a/src/renderer/src/providers/AiProvider/OpenAIProvider.ts +++ b/src/renderer/src/providers/AiProvider/OpenAIProvider.ts @@ -1026,6 +1026,7 @@ export abstract class BaseOpenAiProvider extends BaseProvider { const response = await this.sdk.responses.create({ model: model.id, input: [{ role: 'user', content: 'hi' }], + max_output_tokens: 1, stream: true }) let hasContent = false @@ -1042,7 +1043,8 @@ export abstract class BaseOpenAiProvider extends BaseProvider { const response = await this.sdk.responses.create({ model: model.id, input: [{ role: 'user', content: 'hi' }], - stream: false + stream: false, + max_output_tokens: 1 }) if (!response.output_text) { throw new Error('Empty response')