diff --git a/public/scripts/openai.js b/public/scripts/openai.js index a6ea2b84e..66a434c6c 100644 --- a/public/scripts/openai.js +++ b/public/scripts/openai.js @@ -2522,6 +2522,25 @@ function getReasoningEffort(settings = null, model = null) { } } + if (settings.chat_completion_source === chat_completion_sources.CUSTOM && /^koboldcpp\/(.+)$/.test(model)) { + switch (settings.reasoning_effort) { + case reasoning_effort_types.auto: + return undefined; + case reasoning_effort_types.min: + return 'minimal'; + case reasoning_effort_types.low: + return 'low'; + case reasoning_effort_types.medium: + return 'medium'; + case reasoning_effort_types.high: + return 'high'; + case reasoning_effort_types.max: + return 'xhigh'; + default: + return settings.reasoning_effort; + } + } + switch (settings.reasoning_effort) { case reasoning_effort_types.auto: return undefined; diff --git a/src/endpoints/backends/chat-completions.js b/src/endpoints/backends/chat-completions.js index e2ff3ae53..615d88316 100644 --- a/src/endpoints/backends/chat-completions.js +++ b/src/endpoints/backends/chat-completions.js @@ -2485,6 +2485,9 @@ router.post('/generate', async function (request, response) { if (OPENAI_REASONING_EFFORT_MODELS.includes(request.body.model)) { bodyParams['reasoning_effort'] = OPENAI_FIXED_REASONING_EFFORT[request.body.model] ?? OPENAI_REASONING_EFFORT_MAP[request.body.reasoning_effort] ?? request.body.reasoning_effort; } + if (request.body.chat_completion_source === CHAT_COMPLETION_SOURCES.CUSTOM && /^koboldcpp\/(.+)$/.test(request.body.model)) { + bodyParams['reasoning_effort'] = request.body.reasoning_effort; + } } if (request.body.verbosity && [CHAT_COMPLETION_SOURCES.CUSTOM, CHAT_COMPLETION_SOURCES.OPENAI].includes(request.body.chat_completion_source)) {