Claude: "Auto" effort = no thinking

da7f97b66377a970f1accb890ffd865aeb269ffb

Cohee <18619528+Cohee1207@users.noreply.github.com>

2 files changed, +7 -5Ignore whitespace
src/endpoints/backends/chat-completions.js+4 -3
@@ -200,11 +200,12 @@ async function sendClaudeRequest(request, response) {
200200 betaHeaders.push('prompt-caching-2024-07-31');
201201 }
202202
203- if (useThinking) {
203+ const reasoningEffort = request.body.reasoning_effort;
204+ const budgetTokens = calculateClaudeBudgetTokens(requestBody.max_tokens, reasoningEffort, requestBody.stream);
205+
206+ if (useThinking && Number.isInteger(budgetTokens)) {
204207 // No prefill when thinking
205208 voidPrefill = true;
206- const reasoningEffort = request.body.reasoning_effort;
207- const budgetTokens = calculateClaudeBudgetTokens(requestBody.max_tokens, reasoningEffort, requestBody.stream);
208209 const minThinkTokens = 1024;
209210 if (requestBody.max_tokens <= minThinkTokens) {
210211 const newValue = requestBody.max_tokens + minThinkTokens;
src/prompt-converters.js+3 -2
@@ -917,19 +917,20 @@ export function cachingAtDepthForOpenRouterClaude(messages, cachingAtDepth) {
917917 * @param {number} maxTokens Maximum tokens
918918 * @param {string} reasoningEffort Reasoning effort
919919 * @param {boolean} stream If streaming is enabled
920920 * @returns {number?} Budget tokens
921921 */
922922export function calculateClaudeBudgetTokens(maxTokens, reasoningEffort, stream) {
923923 let budgetTokens = 0;
924924
925925 switch (reasoningEffort) {
926+ case REASONING_EFFORT.auto:
927+ return null;
926928 case REASONING_EFFORT.min:
927929 budgetTokens = 1024;
928930 break;
929931 case REASONING_EFFORT.low:
930932 budgetTokens = Math.floor(maxTokens * 0.1);
931933 break;
932- case REASONING_EFFORT.auto:
933934 case REASONING_EFFORT.medium:
934935 budgetTokens = Math.floor(maxTokens * 0.25);
935936 break;