diff --git a/public/index.html b/public/index.html index 067921fa2..863257fd7 100644 --- a/public/index.html +++ b/public/index.html @@ -1995,6 +1995,18 @@ +
+
+ + +
+
diff --git a/public/scripts/openai.js b/public/scripts/openai.js index 5e27446de..09e48c264 100644 --- a/public/scripts/openai.js +++ b/public/scripts/openai.js @@ -299,6 +299,7 @@ const default_settings = { continue_postfix: continue_postfix_types.SPACE, custom_prompt_post_processing: custom_prompt_post_processing_types.NONE, show_thoughts: true, + reasoning_effort: 'medium', seed: -1, n: 1, }; @@ -378,6 +379,7 @@ const oai_settings = { continue_postfix: continue_postfix_types.SPACE, custom_prompt_post_processing: custom_prompt_post_processing_types.NONE, show_thoughts: true, + reasoning_effort: 'medium', seed: -1, n: 1, }; @@ -1912,6 +1914,7 @@ async function sendOpenAIRequest(type, messages, signal) { 'char_name': name2, 'group_names': getGroupNames(), 'include_reasoning': Boolean(oai_settings.show_thoughts), + 'reasoning_effort': String(oai_settings.reasoning_effort), }; // Empty array will produce a validation error @@ -3122,6 +3125,7 @@ function loadOpenAISettings(data, settings) { oai_settings.inline_image_quality = settings.inline_image_quality ?? default_settings.inline_image_quality; oai_settings.bypass_status_check = settings.bypass_status_check ?? default_settings.bypass_status_check; oai_settings.show_thoughts = settings.show_thoughts ?? default_settings.show_thoughts; + oai_settings.reasoning_effort = settings.reasoning_effort ?? default_settings.reasoning_effort; oai_settings.seed = settings.seed ?? default_settings.seed; oai_settings.n = settings.n ?? default_settings.n; @@ -3251,6 +3255,9 @@ function loadOpenAISettings(data, settings) { $('#n_openai').val(oai_settings.n); $('#openai_show_thoughts').prop('checked', oai_settings.show_thoughts); + $('#openai_reasoning_effort').val(oai_settings.reasoning_effort); + $(`#openai_reasoning_effort option[value="${oai_settings.reasoning_effort}"]`).prop('selected', true); + if (settings.reverse_proxy !== undefined) oai_settings.reverse_proxy = settings.reverse_proxy; $('#openai_reverse_proxy').val(oai_settings.reverse_proxy); @@ -3969,6 +3976,7 @@ function onSettingsPresetChange() { continue_postfix: ['#continue_postfix', 'continue_postfix', false], function_calling: ['#openai_function_calling', 'function_calling', true], show_thoughts: ['#openai_show_thoughts', 'show_thoughts', true], + reasoning_effort: ['#openai_reasoning_effort', 'reasoning_effort', false], seed: ['#seed_openai', 'seed', false], n: ['#n_openai', 'n', false], }; @@ -5510,6 +5518,11 @@ export function initOpenAI() { saveSettingsDebounced(); }); + $('#openai_reasoning_effort').on('input', function () { + oai_settings.reasoning_effort = String($(this).val()); + saveSettingsDebounced(); + }); + if (!CSS.supports('field-sizing', 'content')) { $(document).on('input', '#openai_settings .autoSetHeight', function () { resetScrollHeight($(this)); diff --git a/public/style.css b/public/style.css index d70ca43a5..d854c48cc 100644 --- a/public/style.css +++ b/public/style.css @@ -5914,3 +5914,15 @@ body:not(.movingUI) .drawer-content.maximized { .mes_text div[data-type="assistant_note"]:has(.assistant_note_export)>div:not(.assistant_note_export) { flex: 1; } + +.oneline-dropdown label { + margin-top: 3px; + margin-bottom: 5px; + flex-grow: 1; + text-align: left; +} + +.oneline-dropdown select { + min-width: fit-content; + width: 40%; +}