NanoGPT: Add reasoning effort control Closes #4999

372db63cd537e7188dff7580b00f3293562fc6eb

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

3 files changed, +14 -1Ignore whitespace
public/index.html+1 -1
@@ -2110,7 +2110,7 @@
21102110 </strong>
21112111 </div>
21122112 </div>
21132113 <div class="flex-container flexFlowColumn wide100p textAlignCenter marginTop10" data-source="openai,custom,claude,xai,makersuite,vertexai,aimlapi,openrouter,pollinations,perplexity,cometapi,electronhub,azure_openai,chutes,nanogpt">
21142114 <div class="flex-container oneline-dropdown" title="Constrains effort on reasoning for reasoning models.&#10;Reducing reasoning effort can result in faster responses and fewer tokens used on reasoning in a response." data-i18n="[title]Constrains effort on reasoning for reasoning models.">
21152115 <label for="openai_reasoning_effort">
21162116 <span data-i18n="Reasoning Effort">Reasoning Effort</span>
src/constants.js+8 -0
@@ -482,6 +482,14 @@ export const OPENAI_REASONING_EFFORT_MAP = {
482482 min: 'minimal',
483483};
484484
485+export const NANOGPT_REASONING_EFFORT_MAP = {
486+ min: 'none',
487+ low: 'minimal',
488+ medium: 'low',
489+ high: 'medium',
490+ max: 'high',
491+};
492+
485493export const LOG_LEVELS = {
486494 DEBUG: 0,
487495 INFO: 1,
src/endpoints/backends/chat-completions.js+5 -0
@@ -9,6 +9,7 @@ import {
99 AZURE_OPENAI_KEYS,
1010 CHAT_COMPLETION_SOURCES,
1111 GEMINI_SAFETY,
12+ NANOGPT_REASONING_EFFORT_MAP,
1213 OPENAI_REASONING_EFFORT_MAP,
1314 OPENAI_REASONING_EFFORT_MODELS,
1415 OPENAI_VERBOSITY_MODELS,
@@ -2228,6 +2229,10 @@ router.post('/generate', async function (request, response) {
22282229 if (request.body.repetition_penalty !== undefined) {
22292230 bodyParams['repetition_penalty'] = request.body.repetition_penalty;
22302231 }
2232+ if (request.body.reasoning_effort) {
2233+ const effort = NANOGPT_REASONING_EFFORT_MAP[request.body.reasoning_effort];
2234+ bodyParams['reasoning'] = { effort: effort };
2235+ }
22312236
22322237 const isClaude = /^claude-/.test(request.body.model);
22332238 if (enableSystemPromptCache && isClaude) {