Claude: "Auto" effort = no thinking

da7f97b66377a970f1accb890ffd865aeb269ffb

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

2 files changed, +7 -5Showing whitespace changes
src/endpoints/backends/chat-completions.js+4 -3
@@ -200,11 +200,12 @@ async function sendClaudeRequest(request, response) {
200 betaHeaders.push('prompt-caching-2024-07-31');200 betaHeaders.push('prompt-caching-2024-07-31');
201 }201 }
202202
203 if (useThinking) {
204 // No prefill when thinking
205 voidPrefill = true;
206 const reasoningEffort = request.body.reasoning_effort;203 const reasoningEffort = request.body.reasoning_effort;
207 const budgetTokens = calculateClaudeBudgetTokens(requestBody.max_tokens, reasoningEffort, requestBody.stream);204 const budgetTokens = calculateClaudeBudgetTokens(requestBody.max_tokens, reasoningEffort, requestBody.stream);
205
206 if (useThinking && Number.isInteger(budgetTokens)) {
207 // No prefill when thinking
208 voidPrefill = true;
208 const minThinkTokens = 1024;209 const minThinkTokens = 1024;
209 if (requestBody.max_tokens <= minThinkTokens) {210 if (requestBody.max_tokens <= minThinkTokens) {
210 const newValue = requestBody.max_tokens + minThinkTokens;211 const newValue = requestBody.max_tokens + minThinkTokens;
src/prompt-converters.js+3 -2
@@ -917,19 +917,20 @@ export function cachingAtDepthForOpenRouterClaude(messages, cachingAtDepth) {
917 * @param {number} maxTokens Maximum tokens917 * @param {number} maxTokens Maximum tokens
918 * @param {string} reasoningEffort Reasoning effort918 * @param {string} reasoningEffort Reasoning effort
919 * @param {boolean} stream If streaming is enabled919 * @param {boolean} stream If streaming is enabled
920 * @returns {number} Budget tokens920 * @returns {number?} Budget tokens
921 */921 */
922export function calculateClaudeBudgetTokens(maxTokens, reasoningEffort, stream) {922export function calculateClaudeBudgetTokens(maxTokens, reasoningEffort, stream) {
923 let budgetTokens = 0;923 let budgetTokens = 0;
924924
925 switch (reasoningEffort) {925 switch (reasoningEffort) {
926 case REASONING_EFFORT.auto:
927 return null;
926 case REASONING_EFFORT.min:928 case REASONING_EFFORT.min:
927 budgetTokens = 1024;929 budgetTokens = 1024;
928 break;930 break;
929 case REASONING_EFFORT.low:931 case REASONING_EFFORT.low:
930 budgetTokens = Math.floor(maxTokens * 0.1);932 budgetTokens = Math.floor(maxTokens * 0.1);
931 break;933 break;
932 case REASONING_EFFORT.auto:
933 case REASONING_EFFORT.medium:934 case REASONING_EFFORT.medium:
934 budgetTokens = Math.floor(maxTokens * 0.25);935 budgetTokens = Math.floor(maxTokens * 0.25);
935 break;936 break;