From a6e57dec5ea9c759ef23700612374aea430ec49e Mon Sep 17 00:00:00 2001 From: extio-de Date: Sat, 15 Aug 2026 16:39:38 +0200 Subject: [PATCH] Add REASONING_EFFORT configuration and UI support --- README.md | 6 + apps.json | 664 +----------------- lm-launcher.jar | Bin 2188854 -> 2190066 bytes src/de/extio/lm_launcher/App.java | 1 + src/de/extio/lm_launcher/Data.java | 6 +- src/de/extio/lm_launcher/LaunchFrame.java | 34 + src/de/extio/lm_launcher/Model.java | 20 +- .../lm_launcher/ModelPropertiesDialog.java | 2 +- 8 files changed, 65 insertions(+), 668 deletions(-) diff --git a/README.md b/README.md index 07b9bb8..856d106 100644 --- a/README.md +++ b/README.md @@ -45,6 +45,7 @@ Use these tokens in app arguments: - `TOP_P` - `TOP_K` - `MIN_P` +- `REASONING_EFFORT` - `REASONING_STOP` Example: @@ -53,6 +54,11 @@ Example: -m MODEL -c CONTEXT_SIZE -t THREADS -ngl GPU_LAYERS --temp TEMP --top-p TOP_P --top-k TOP_K --min-p MIN_P ``` +For llama-server reasoning controls, configure `--chat-template-kwargs REASONING_EFFORT`. +The placeholder expands to a single JSON argument such as `{"reasoning_effort": "medium"}`. +When this placeholder is selected for the current app and model, the model options panel provides +the presets `none`, `low`, `medium`, `high`, and `xhigh`. + ## Setup ### lm-launcher.properties diff --git a/apps.json b/apps.json index f1142e6..44fbbe4 100644 --- a/apps.json +++ b/apps.json @@ -1,663 +1 @@ -{ - "apps": [ - { - "path": "file:///home/sb/lm/llama.cpp/build/bin/llama-server", - "interpreter": null, - "arguments": [], - "appArguments": [ - { - "argument": "-nkvo", - "optional": true, - "default_": false - }, - { - "argument": "--parallel", - "optional": true, - "default_": false - }, - { - "argument": "3", - "optional": true, - "default_": false - }, - { - "argument": "--reasoning", - "optional": true, - "default_": false - }, - { - "argument": "off", - "optional": true, - "default_": false - }, - { - "argument": "--spec-type", - "optional": true, - "default_": false - }, - { - "argument": "draft-mtp", - "optional": true, - "default_": false - }, - { - "argument": "--spec-draft-n-max", - "optional": true, - "default_": false - }, - { - "argument": "2", - "optional": true, - "default_": false - }, - { - "argument": "-ts", - "optional": true, - "default_": true - }, - { - "argument": "3,2", - "optional": true, - "default_": true - }, - { - "argument": "--no-mmap", - "optional": true, - "default_": false - }, - { - "argument": "--jinja", - "optional": true, - "default_": true - }, - { - "argument": "--reasoning-budget", - "optional": true, - "default_": true - }, - { - "argument": "5000", - "optional": true, - "default_": true - }, - { - "argument": "--device", - "optional": true, - "default_": false - }, - { - "argument": "ROCm0", - "optional": true, - "default_": false - }, - { - "argument": "--split-mode", - "optional": true, - "default_": false - }, - { - "argument": "layer", - "optional": true, - "default_": false - }, - { - "argument": "row", - "optional": true, - "default_": false - }, - { - "argument": "tensor", - "optional": true, - "default_": false - }, - { - "argument": "--host", - "optional": true, - "default_": true - }, - { - "argument": "0.0.0.0", - "optional": true, - "default_": true - }, - { - "argument": "--port", - "optional": false, - "default_": true - }, - { - "argument": "5001", - "optional": false, - "default_": true - }, - { - "argument": "-t", - "optional": false, - "default_": true - }, - { - "argument": "THREADS", - "optional": false, - "default_": true - }, - { - "argument": "-ngl", - "optional": true, - "default_": true - }, - { - "argument": "GPU_LAYERS", - "optional": true, - "default_": true - }, - { - "argument": "--ctx-size", - "optional": true, - "default_": true - }, - { - "argument": "CONTEXT_SIZE", - "optional": true, - "default_": true - }, - { - "argument": "-m", - "optional": false, - "default_": true - }, - { - "argument": "MODEL", - "optional": false, - "default_": true - }, - { - "argument": "--temp", - "optional": false, - "default_": true - }, - { - "argument": "TEMP", - "optional": false, - "default_": true - }, - { - "argument": "--top-p", - "optional": false, - "default_": true - }, - { - "argument": "TOP_P", - "optional": false, - "default_": true - }, - { - "argument": "--top-k", - "optional": false, - "default_": true - }, - { - "argument": "TOP_K", - "optional": false, - "default_": true - }, - { - "argument": "--min-p", - "optional": false, - "default_": true - }, - { - "argument": "MIN_P", - "optional": false, - "default_": true - } - ], - "modelSettings": [ - { - "modelPath": "/mnt/data/data/lm/models/gguf/xl/MiniMax-M2.7-UD-IQ4_XS-00001-of-00004.gguf", - "appArguments": [ - { - "argument": "-nkvo", - "optional": true, - "default_": false - }, - { - "argument": "--parallel", - "optional": true, - "default_": false - }, - { - "argument": "3", - "optional": true, - "default_": false - }, - { - "argument": "--reasoning", - "optional": true, - "default_": false - }, - { - "argument": "off", - "optional": true, - "default_": false - }, - { - "argument": "--spec-type", - "optional": true, - "default_": false - }, - { - "argument": "draft-mtp", - "optional": true, - "default_": false - }, - { - "argument": "--spec-draft-n-max", - "optional": true, - "default_": false - }, - { - "argument": "2", - "optional": true, - "default_": false - }, - { - "argument": "-ts", - "optional": true, - "default_": false - }, - { - "argument": "3,2", - "optional": true, - "default_": false - }, - { - "argument": "--no-mmap", - "optional": true, - "default_": false - }, - { - "argument": "--jinja", - "optional": true, - "default_": true - }, - { - "argument": "--reasoning-budget", - "optional": true, - "default_": true - }, - { - "argument": "5000", - "optional": true, - "default_": true - }, - { - "argument": "--device", - "optional": true, - "default_": false - }, - { - "argument": "ROCm0", - "optional": true, - "default_": false - }, - { - "argument": "--split-mode", - "optional": true, - "default_": true - }, - { - "argument": "layer", - "optional": true, - "default_": false - }, - { - "argument": "row", - "optional": true, - "default_": false - }, - { - "argument": "tensor", - "optional": true, - "default_": true - }, - { - "argument": "--host", - "optional": true, - "default_": true - }, - { - "argument": "0.0.0.0", - "optional": true, - "default_": true - }, - { - "argument": "--port", - "optional": false, - "default_": true - }, - { - "argument": "5001", - "optional": false, - "default_": true - }, - { - "argument": "-t", - "optional": false, - "default_": true - }, - { - "argument": "THREADS", - "optional": false, - "default_": true - }, - { - "argument": "-ngl", - "optional": true, - "default_": true - }, - { - "argument": "GPU_LAYERS", - "optional": true, - "default_": true - }, - { - "argument": "--ctx-size", - "optional": true, - "default_": true - }, - { - "argument": "CONTEXT_SIZE", - "optional": true, - "default_": true - }, - { - "argument": "-m", - "optional": false, - "default_": true - }, - { - "argument": "MODEL", - "optional": false, - "default_": true - }, - { - "argument": "--temp", - "optional": false, - "default_": true - }, - { - "argument": "TEMP", - "optional": false, - "default_": true - }, - { - "argument": "--top-p", - "optional": false, - "default_": true - }, - { - "argument": "TOP_P", - "optional": false, - "default_": true - }, - { - "argument": "--top-k", - "optional": false, - "default_": true - }, - { - "argument": "TOP_K", - "optional": false, - "default_": true - }, - { - "argument": "--min-p", - "optional": false, - "default_": true - }, - { - "argument": "MIN_P", - "optional": false, - "default_": true - } - ] - }, - { - "modelPath": "/mnt/data/data/lm/models/gguf/m/Qwen3.6-35B-A3B-UD-Q5_K_XL-mtp.gguf", - "appArguments": [ - { - "argument": "-nkvo", - "optional": true, - "default_": false - }, - { - "argument": "--parallel", - "optional": true, - "default_": false - }, - { - "argument": "3", - "optional": true, - "default_": false - }, - { - "argument": "--reasoning", - "optional": true, - "default_": false - }, - { - "argument": "off", - "optional": true, - "default_": false - }, - { - "argument": "--spec-type", - "optional": true, - "default_": true - }, - { - "argument": "draft-mtp", - "optional": true, - "default_": true - }, - { - "argument": "--spec-draft-n-max", - "optional": true, - "default_": true - }, - { - "argument": "2", - "optional": true, - "default_": true - }, - { - "argument": "-ts", - "optional": true, - "default_": true - }, - { - "argument": "3,2", - "optional": true, - "default_": true - }, - { - "argument": "--no-mmap", - "optional": true, - "default_": false - }, - { - "argument": "--jinja", - "optional": true, - "default_": true - }, - { - "argument": "--reasoning-budget", - "optional": true, - "default_": true - }, - { - "argument": "5000", - "optional": true, - "default_": true - }, - { - "argument": "--device", - "optional": true, - "default_": false - }, - { - "argument": "ROCm0", - "optional": true, - "default_": false - }, - { - "argument": "--split-mode", - "optional": true, - "default_": false - }, - { - "argument": "layer", - "optional": true, - "default_": false - }, - { - "argument": "row", - "optional": true, - "default_": false - }, - { - "argument": "tensor", - "optional": true, - "default_": false - }, - { - "argument": "--host", - "optional": true, - "default_": true - }, - { - "argument": "0.0.0.0", - "optional": true, - "default_": true - }, - { - "argument": "--port", - "optional": false, - "default_": true - }, - { - "argument": "5001", - "optional": false, - "default_": true - }, - { - "argument": "-t", - "optional": false, - "default_": true - }, - { - "argument": "THREADS", - "optional": false, - "default_": true - }, - { - "argument": "-ngl", - "optional": true, - "default_": true - }, - { - "argument": "GPU_LAYERS", - "optional": true, - "default_": true - }, - { - "argument": "--ctx-size", - "optional": true, - "default_": true - }, - { - "argument": "CONTEXT_SIZE", - "optional": true, - "default_": true - }, - { - "argument": "-m", - "optional": false, - "default_": true - }, - { - "argument": "MODEL", - "optional": false, - "default_": true - }, - { - "argument": "--temp", - "optional": false, - "default_": true - }, - { - "argument": "TEMP", - "optional": false, - "default_": true - }, - { - "argument": "--top-p", - "optional": false, - "default_": true - }, - { - "argument": "TOP_P", - "optional": false, - "default_": true - }, - { - "argument": "--top-k", - "optional": false, - "default_": true - }, - { - "argument": "TOP_K", - "optional": false, - "default_": true - }, - { - "argument": "--min-p", - "optional": false, - "default_": true - }, - { - "argument": "MIN_P", - "optional": false, - "default_": true - } - ] - } - ] - }, - { - "path": "file:///home/sb/lm/SillyTavern/start.sh", - "interpreter": null, - "arguments": [], - "appArguments": [], - "modelSettings": [ - { - "modelPath": "/mnt/data/data/lm/models/gguf/xl/MiniMax-M2.7-UD-IQ4_XS-00001-of-00004.gguf", - "appArguments": [] - } - ] - }, - { - "path": "file:///home/sb/lm/ollama-oai-bridge/start.sh", - "interpreter": null, - "arguments": [], - "appArguments": [ - { - "argument": "-Dbridge.reported-context-offset=30000", - "optional": false, - "default_": true - } - ], - "modelSettings": [] - } - ] -} +{"apps":[{"path":"file:///home/sb/lm/llama.cpp/build/bin/llama-server","interpreter":null,"arguments":[],"appArguments":[{"argument":"-nkvo","optional":true,"default_":false},{"argument":"--parallel","optional":true,"default_":false},{"argument":"3","optional":true,"default_":false},{"argument":"--reasoning","optional":true,"default_":false},{"argument":"off","optional":true,"default_":false},{"argument":"--chat-template-kwargs","optional":true,"default_":false},{"argument":"REASONING_EFFORT","optional":true,"default_":false},{"argument":"--spec-type","optional":true,"default_":false},{"argument":"draft-mtp","optional":true,"default_":false},{"argument":"--spec-draft-n-max","optional":true,"default_":false},{"argument":"2","optional":true,"default_":false},{"argument":"-ts","optional":true,"default_":true},{"argument":"3,2","optional":true,"default_":true},{"argument":"--no-mmap","optional":true,"default_":false},{"argument":"--jinja","optional":true,"default_":true},{"argument":"--reasoning-budget","optional":true,"default_":true},{"argument":"5000","optional":true,"default_":true},{"argument":"--device","optional":true,"default_":false},{"argument":"ROCm0","optional":true,"default_":false},{"argument":"--split-mode","optional":true,"default_":false},{"argument":"layer","optional":true,"default_":false},{"argument":"row","optional":true,"default_":false},{"argument":"tensor","optional":true,"default_":false},{"argument":"--host","optional":true,"default_":true},{"argument":"0.0.0.0","optional":true,"default_":true},{"argument":"--port","optional":false,"default_":true},{"argument":"5001","optional":false,"default_":true},{"argument":"-t","optional":false,"default_":true},{"argument":"THREADS","optional":false,"default_":true},{"argument":"-ngl","optional":true,"default_":true},{"argument":"GPU_LAYERS","optional":true,"default_":true},{"argument":"--ctx-size","optional":true,"default_":true},{"argument":"CONTEXT_SIZE","optional":true,"default_":true},{"argument":"-m","optional":false,"default_":true},{"argument":"MODEL","optional":false,"default_":true},{"argument":"--temp","optional":false,"default_":true},{"argument":"TEMP","optional":false,"default_":true},{"argument":"--top-p","optional":false,"default_":true},{"argument":"TOP_P","optional":false,"default_":true},{"argument":"--top-k","optional":false,"default_":true},{"argument":"TOP_K","optional":false,"default_":true},{"argument":"--min-p","optional":false,"default_":true},{"argument":"MIN_P","optional":false,"default_":true}],"modelSettings":[{"modelPath":"/mnt/data/data/lm/models/gguf/xl/MiniMax-M2.7-UD-IQ4_XS-00001-of-00004.gguf","appArguments":[{"argument":"-nkvo","optional":true,"default_":false},{"argument":"--parallel","optional":true,"default_":false},{"argument":"3","optional":true,"default_":false},{"argument":"--reasoning","optional":true,"default_":false},{"argument":"off","optional":true,"default_":false},{"argument":"--spec-type","optional":true,"default_":false},{"argument":"draft-mtp","optional":true,"default_":false},{"argument":"--spec-draft-n-max","optional":true,"default_":false},{"argument":"2","optional":true,"default_":false},{"argument":"-ts","optional":true,"default_":false},{"argument":"3,2","optional":true,"default_":false},{"argument":"--no-mmap","optional":true,"default_":false},{"argument":"--jinja","optional":true,"default_":true},{"argument":"--reasoning-budget","optional":true,"default_":true},{"argument":"5000","optional":true,"default_":true},{"argument":"--device","optional":true,"default_":false},{"argument":"ROCm0","optional":true,"default_":false},{"argument":"--split-mode","optional":true,"default_":true},{"argument":"layer","optional":true,"default_":false},{"argument":"row","optional":true,"default_":false},{"argument":"tensor","optional":true,"default_":true},{"argument":"--host","optional":true,"default_":true},{"argument":"0.0.0.0","optional":true,"default_":true},{"argument":"--port","optional":false,"default_":true},{"argument":"5001","optional":false,"default_":true},{"argument":"-t","optional":false,"default_":true},{"argument":"THREADS","optional":false,"default_":true},{"argument":"-ngl","optional":true,"default_":true},{"argument":"GPU_LAYERS","optional":true,"default_":true},{"argument":"--ctx-size","optional":true,"default_":true},{"argument":"CONTEXT_SIZE","optional":true,"default_":true},{"argument":"-m","optional":false,"default_":true},{"argument":"MODEL","optional":false,"default_":true},{"argument":"--temp","optional":false,"default_":true},{"argument":"TEMP","optional":false,"default_":true},{"argument":"--top-p","optional":false,"default_":true},{"argument":"TOP_P","optional":false,"default_":true},{"argument":"--top-k","optional":false,"default_":true},{"argument":"TOP_K","optional":false,"default_":true},{"argument":"--min-p","optional":false,"default_":true},{"argument":"MIN_P","optional":false,"default_":true}]},{"modelPath":"/mnt/data/data/lm/models/gguf/m/Qwen3.6-35B-A3B-UD-Q5_K_XL-mtp.gguf","appArguments":[{"argument":"-nkvo","optional":true,"default_":false},{"argument":"--parallel","optional":true,"default_":false},{"argument":"3","optional":true,"default_":false},{"argument":"--reasoning","optional":true,"default_":false},{"argument":"off","optional":true,"default_":false},{"argument":"--spec-type","optional":true,"default_":true},{"argument":"draft-mtp","optional":true,"default_":true},{"argument":"--spec-draft-n-max","optional":true,"default_":true},{"argument":"2","optional":true,"default_":true},{"argument":"-ts","optional":true,"default_":true},{"argument":"3,2","optional":true,"default_":true},{"argument":"--no-mmap","optional":true,"default_":false},{"argument":"--jinja","optional":true,"default_":true},{"argument":"--reasoning-budget","optional":true,"default_":true},{"argument":"5000","optional":true,"default_":true},{"argument":"--device","optional":true,"default_":false},{"argument":"ROCm0","optional":true,"default_":false},{"argument":"--split-mode","optional":true,"default_":false},{"argument":"layer","optional":true,"default_":false},{"argument":"row","optional":true,"default_":false},{"argument":"tensor","optional":true,"default_":false},{"argument":"--host","optional":true,"default_":true},{"argument":"0.0.0.0","optional":true,"default_":true},{"argument":"--port","optional":false,"default_":true},{"argument":"5001","optional":false,"default_":true},{"argument":"-t","optional":false,"default_":true},{"argument":"THREADS","optional":false,"default_":true},{"argument":"-ngl","optional":true,"default_":true},{"argument":"GPU_LAYERS","optional":true,"default_":true},{"argument":"--ctx-size","optional":true,"default_":true},{"argument":"CONTEXT_SIZE","optional":true,"default_":true},{"argument":"-m","optional":false,"default_":true},{"argument":"MODEL","optional":false,"default_":true},{"argument":"--temp","optional":false,"default_":true},{"argument":"TEMP","optional":false,"default_":true},{"argument":"--top-p","optional":false,"default_":true},{"argument":"TOP_P","optional":false,"default_":true},{"argument":"--top-k","optional":false,"default_":true},{"argument":"TOP_K","optional":false,"default_":true},{"argument":"--min-p","optional":false,"default_":true},{"argument":"MIN_P","optional":false,"default_":true}]}]},{"path":"file:///home/sb/lm/SillyTavern/start.sh","interpreter":null,"arguments":[],"appArguments":[],"modelSettings":[{"modelPath":"/mnt/data/data/lm/models/gguf/xl/MiniMax-M2.7-UD-IQ4_XS-00001-of-00004.gguf","appArguments":[]}]},{"path":"file:///home/sb/lm/ollama-oai-bridge/start.sh","interpreter":null,"arguments":[],"appArguments":[{"argument":"-Dbridge.reported-context-offset=30000","optional":false,"default_":true}],"modelSettings":[]}]} \ No newline at end of file diff --git a/lm-launcher.jar b/lm-launcher.jar index f5144be624942af6930a3f405689e22e41f504cd..88165f41e52afdbe18906f5237df5a6bf4bf8e0f 100644 GIT binary patch delta 38930 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 delta 37657 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�BNCrUs96T5Ok0D2q@H>7WprjC#yv) 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 diff --git a/src/de/extio/lm_launcher/App.java b/src/de/extio/lm_launcher/App.java index 1c46e4c..1cce647 100644 --- a/src/de/extio/lm_launcher/App.java +++ b/src/de/extio/lm_launcher/App.java @@ -27,6 +27,7 @@ record App(Path path, Path interpreter, @Deprecated List arguments, List "TOP_P", Model::topPDisplay, "TOP_K", Model::topKDisplay, "MIN_P", Model::minPDisplay, + "REASONING_EFFORT", Model::reasoningEffortArgument, "REASONING_STOP", m -> "... thinking budget exceeded, let's answer now.\n"); String argumentsToString(final boolean showAll) { diff --git a/src/de/extio/lm_launcher/Data.java b/src/de/extio/lm_launcher/Data.java index 516e96a..a53f77e 100644 --- a/src/de/extio/lm_launcher/Data.java +++ b/src/de/extio/lm_launcher/Data.java @@ -46,9 +46,9 @@ public class Data { for (int i = 0; i < modelData.models().size(); i++) { final Model model = modelData.models.get(i); if (model.maxContextSize() < model.contextSize() || model.promptTemplate() == null || model.temperature() == null || model.topP() == null || model.topK() == null - || model.minP() == null) { + || model.minP() == null || model.reasoningEffort() == null) { modelData.models.set(i, new Model(model.path(), model.contextSize(), model.maxContextSize(), model.gpuLayers(), model.threads(), model.temperature(), model.topP(), model.topK(), - model.minP(), model.promptTemplate(), model.ctime())); + model.minP(), model.promptTemplate(), model.reasoningEffort(), model.ctime())); } } sortModels(); @@ -168,7 +168,7 @@ public class Data { catch (final IOException e) { // Use 0 as fallback } - return new Model(path, 16000, 128000, 99, 6, Model.DEFAULT_TEMPERATURE, Model.DEFAULT_TOP_P, Model.DEFAULT_TOP_K, Model.DEFAULT_MIN_P, "", ctime); + return new Model(path, 16000, 128000, 99, 6, Model.DEFAULT_TEMPERATURE, Model.DEFAULT_TOP_P, Model.DEFAULT_TOP_K, Model.DEFAULT_MIN_P, "", Model.DEFAULT_REASONING_EFFORT, ctime); } static record ModelData(List models) { diff --git a/src/de/extio/lm_launcher/LaunchFrame.java b/src/de/extio/lm_launcher/LaunchFrame.java index c17321f..471bed6 100644 --- a/src/de/extio/lm_launcher/LaunchFrame.java +++ b/src/de/extio/lm_launcher/LaunchFrame.java @@ -21,6 +21,7 @@ import javax.swing.DefaultListModel; import javax.swing.DefaultListSelectionModel; import javax.swing.JButton; import javax.swing.JCheckBox; +import javax.swing.JComboBox; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JLabel; @@ -152,6 +153,10 @@ public class LaunchFrame extends JFrame { JSlider slider_minP; JLabel lblMinPValue; + + JLabel lblReasoningEffort; + + JComboBox comboReasoningEffort; /** * Create the frame. @@ -431,6 +436,16 @@ public class LaunchFrame extends JFrame { this.lblMinPValue.setHorizontalAlignment(SwingConstants.CENTER); this.panel_3.add(this.lblMinPValue); } + { + this.lblReasoningEffort = new JLabel("Reasoning Effort"); + this.lblReasoningEffort.setHorizontalAlignment(SwingConstants.CENTER); + this.panel_3.add(this.lblReasoningEffort); + } + { + this.comboReasoningEffort = new JComboBox<>(Model.REASONING_EFFORTS); + this.comboReasoningEffort.setSelectedItem(Model.DEFAULT_REASONING_EFFORT); + this.panel_3.add(this.comboReasoningEffort); + } { this.verticalStrut = Box.createVerticalStrut(20); this.panel_3.add(this.verticalStrut); @@ -571,6 +586,7 @@ public class LaunchFrame extends JFrame { LaunchFrame.this.slider_topK.getValue(), LaunchFrame.this.sliderValue(LaunchFrame.this.slider_minP), template.promptTemplate(), + (String) LaunchFrame.this.comboReasoningEffort.getSelectedItem(), template.ctime()); } @@ -639,10 +655,12 @@ public class LaunchFrame extends JFrame { this.appArgumentsTableModel.setRowCount(0); final App selectedApp = this.getSelectedApp(); if (selectedApp == null) { + this.updateReasoningEffortVisibility(); return; } selectedApp.argumentsForModel(this.getSelectedModelPath()) .forEach(argument -> this.appArgumentsTableModel.addRow(new Object[] { argument })); + this.updateReasoningEffortVisibility(); } private List currentTableArguments() { @@ -671,9 +689,25 @@ public class LaunchFrame extends JFrame { this.slider_topP.setValue(LaunchFrame.doubleToSlider(model.topPValue())); this.slider_topK.setValue(model.topKValue()); this.slider_minP.setValue(LaunchFrame.doubleToSlider(model.minPValue())); + this.comboReasoningEffort.setSelectedItem(model.reasoningEffort()); this.lblPromptTemplate_1.setText(model.promptTemplate() != null && !model.promptTemplate().isEmpty() ? model.promptTemplate() : "-"); this.updateSamplingValueLabels(); } + + private void updateReasoningEffortVisibility() { + boolean selected = false; + for (int i = 0; i < this.appArgumentsTableModel.getRowCount(); i++) { + final AppArgument argument = (AppArgument) this.appArgumentsTableModel.getValueAt(i, 0); + if ("REASONING_EFFORT".equals(argument.argument()) && (!argument.optional() || argument.default_())) { + selected = true; + break; + } + } + this.lblReasoningEffort.setVisible(selected); + this.comboReasoningEffort.setVisible(selected); + this.panel_3.revalidate(); + this.panel_3.repaint(); + } private void updateSamplingValueLabels() { this.lblTemperatureValue.setText(Model.formatDecimal(this.sliderValue(this.slider_temperature))); diff --git a/src/de/extio/lm_launcher/Model.java b/src/de/extio/lm_launcher/Model.java index c33f45a..de82197 100644 --- a/src/de/extio/lm_launcher/Model.java +++ b/src/de/extio/lm_launcher/Model.java @@ -3,7 +3,11 @@ package de.extio.lm_launcher; import java.math.BigDecimal; record Model(String path, int contextSize, int maxContextSize, int gpuLayers, int threads, Double temperature, Double topP, - Integer topK, Double minP, String promptTemplate, long ctime) { + Integer topK, Double minP, String promptTemplate, String reasoningEffort, long ctime) { + + static final String[] REASONING_EFFORTS = { "none", "low", "medium", "high", "xhigh" }; + + static final String DEFAULT_REASONING_EFFORT = "medium"; static final double DEFAULT_TEMPERATURE = 0.8d; @@ -39,6 +43,20 @@ record Model(String path, int contextSize, int maxContextSize, int gpuLayers, in topK = sanitizeInt(topK, DEFAULT_TOP_K, MIN_TOP_K, MAX_TOP_K); minP = sanitizeDouble(minP, DEFAULT_MIN_P, MIN_MIN_P, MAX_MIN_P); promptTemplate = promptTemplate == null ? "" : promptTemplate; + reasoningEffort = isValidReasoningEffort(reasoningEffort) ? reasoningEffort : DEFAULT_REASONING_EFFORT; + } + + String reasoningEffortArgument() { + return "{\"reasoning_effort\": \"" + this.reasoningEffort + "\"}"; + } + + private static boolean isValidReasoningEffort(final String value) { + for (final String effort : REASONING_EFFORTS) { + if (effort.equals(value)) { + return true; + } + } + return false; } double temperatureValue() { diff --git a/src/de/extio/lm_launcher/ModelPropertiesDialog.java b/src/de/extio/lm_launcher/ModelPropertiesDialog.java index e573958..301b930 100644 --- a/src/de/extio/lm_launcher/ModelPropertiesDialog.java +++ b/src/de/extio/lm_launcher/ModelPropertiesDialog.java @@ -184,7 +184,7 @@ public class ModelPropertiesDialog extends JDialog { ModelPropertiesDialog.this.setVisible(false); modelConsumer.accept( new Model(modelPath, contextSize, maxContextSize, gpuLayers, threads, temperature, topP, topK, minP, ModelPropertiesDialog.this.txtPrompttemplate.getText(), - modelToEdit.ctime())); + modelToEdit.reasoningEffort(), modelToEdit.ctime())); ModelPropertiesDialog.this.dispose(); } catch (final NumberFormatException nfe) {