From da7f97b66377a970f1accb890ffd865aeb269ffb Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Thu, 8 May 2025 20:28:35 +0300 Subject: [PATCH 1/2] Claude: "Auto" effort = no thinking --- src/endpoints/backends/chat-completions.js | 7 ++++--- src/prompt-converters.js | 5 +++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/endpoints/backends/chat-completions.js b/src/endpoints/backends/chat-completions.js index e440d6c01..b6cce98a0 100644 --- a/src/endpoints/backends/chat-completions.js +++ b/src/endpoints/backends/chat-completions.js @@ -200,11 +200,12 @@ async function sendClaudeRequest(request, response) { betaHeaders.push('prompt-caching-2024-07-31'); } - if (useThinking) { + const reasoningEffort = request.body.reasoning_effort; + const budgetTokens = calculateClaudeBudgetTokens(requestBody.max_tokens, reasoningEffort, requestBody.stream); + + if (useThinking && Number.isInteger(budgetTokens)) { // No prefill when thinking voidPrefill = true; - const reasoningEffort = request.body.reasoning_effort; - const budgetTokens = calculateClaudeBudgetTokens(requestBody.max_tokens, reasoningEffort, requestBody.stream); const minThinkTokens = 1024; if (requestBody.max_tokens <= minThinkTokens) { const newValue = requestBody.max_tokens + minThinkTokens; diff --git a/src/prompt-converters.js b/src/prompt-converters.js index c894a4736..ae4c0c0fb 100644 --- a/src/prompt-converters.js +++ b/src/prompt-converters.js @@ -917,19 +917,20 @@ export function cachingAtDepthForOpenRouterClaude(messages, cachingAtDepth) { * @param {number} maxTokens Maximum tokens * @param {string} reasoningEffort Reasoning effort * @param {boolean} stream If streaming is enabled - * @returns {number} Budget tokens + * @returns {number?} Budget tokens */ export function calculateClaudeBudgetTokens(maxTokens, reasoningEffort, stream) { let budgetTokens = 0; switch (reasoningEffort) { + case REASONING_EFFORT.auto: + return null; case REASONING_EFFORT.min: budgetTokens = 1024; break; case REASONING_EFFORT.low: budgetTokens = Math.floor(maxTokens * 0.1); break; - case REASONING_EFFORT.auto: case REASONING_EFFORT.medium: budgetTokens = Math.floor(maxTokens * 0.25); break; From c1c77a6a60b30cbe85bed3b4d8a3e8c67c2fa4ac Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Thu, 8 May 2025 20:51:38 +0300 Subject: [PATCH 2/2] Claude: add web search tool, adjust prefill voiding Closes #3968 --- public/index.html | 2 +- src/endpoints/backends/chat-completions.js | 21 +++++++++++++-------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/public/index.html b/public/index.html index ae9631e55..942764ef7 100644 --- a/public/index.html +++ b/public/index.html @@ -1963,7 +1963,7 @@ -
+