diff --git a/config.properties b/config.properties index 02448d5..1f0c7b2 100644 --- a/config.properties +++ b/config.properties @@ -1,6 +1,6 @@ #Llama Runner Configuration -#Mon Mar 23 12:24:12 CET 2026 -windowHeight=854 -windowWidth=587 -windowX=1973 +#Mon Mar 23 13:54:12 UTC 2026 windowY=546 +windowHeight=854 +windowX=1973 +windowWidth=587 diff --git a/profiles.json b/profiles.json index 137e5be..e0875b5 100644 --- a/profiles.json +++ b/profiles.json @@ -16,7 +16,8 @@ "enableThinking": false, "modelPath": "/home/kamma/models/Nemotron-Cascade-2-30B-A3B.Q8_0.gguf", "chatTemplateKwargs": "{\"enable_thinking\": false}", - "ngl": -1 + "ngl": -1, + "fit": false }, "Qwen3.5-q6k-180k": { "host": "0.0.0.0", @@ -35,7 +36,8 @@ "enableThinking": false, "modelPath": "/home/kamma/models/Qwen3.5-35B-A3B-Q6_K.gguf", "chatTemplateKwargs": "{\"enable_thinking\": false}", - "ngl": 999 + "ngl": 999, + "fit": false }, "QwenCoderNext-160k": { "host": "0.0.0.0", @@ -54,7 +56,8 @@ "enableThinking": false, "modelPath": "/home/kamma/models/Qwen3-Coder-Next-UD-Q2_K_XL.gguf", "chatTemplateKwargs": "{\"enable_thinking\": false}", - "ngl": 999 + "ngl": 999, + "fit": false }, "Nemotron Cascade 180k": { "host": "0.0.0.0", @@ -73,7 +76,8 @@ "enableThinking": false, "modelPath": "/home/kamma/models/Nemotron-Cascade-2-30B-A3B.Q5_K_M.gguf", "chatTemplateKwargs": "{\"enable_thinking\": false}", - "ngl": 999 + "ngl": 999, + "fit": false }, "Qwen3.5 q6xl 160k": { "host": "0.0.0.0", @@ -92,6 +96,27 @@ "enableThinking": false, "modelPath": "/home/kamma/models/Qwen3.5-35B-A3B-UD-Q6_K_XL.gguf", "chatTemplateKwargs": "{\"enable_thinking\": false}", - "ngl": -1 + "ngl": -1, + "fit": true + }, + "gpt-oss-20b-160k": { + "host": "0.0.0.0", + "port": 3080, + "parallel": 1, + "threads": 99, + "flashAttention": true, + "kvUnified": true, + "cacheTypeK": "bf16", + "cacheTypeV": "bf16", + "temperature": 0.6, + "topP": 0.95, + "topK": 20, + "minP": 0.0, + "ctxSize": 160000, + "enableThinking": false, + "modelPath": "/home/kamma/models/gpt-oss-20b-F16.gguf", + "chatTemplateKwargs": "{\"enable_thinking\": false}", + "ngl": 999, + "fit": false } } \ No newline at end of file diff --git a/src/main/java/cz/kamma/llamarunner/Main.java b/src/main/java/cz/kamma/llamarunner/Main.java index 1eecc13..00848b5 100644 --- a/src/main/java/cz/kamma/llamarunner/Main.java +++ b/src/main/java/cz/kamma/llamarunner/Main.java @@ -365,8 +365,6 @@ public class Main extends JFrame { threadsField.setText(String.valueOf(config.getThreads())); flashAttnCheckBox.setSelected(config.isFlashAttention()); kvUnifiedCheckBox.setSelected(config.isKvUnified()); - fitCheckBox.setSelected(config.isFit()); - toggleFitMode(); cacheTypeKComboBox.setSelectedItem(config.getCacheTypeK()); cacheTypeVComboBox.setSelectedItem(config.getCacheTypeV()); tempField.setText(String.valueOf(config.getTemperature())); @@ -380,7 +378,9 @@ public class Main extends JFrame { modelComboBox.setSelectedItem(modelName); kwargsField.setText(config.getChatTemplateKwargs()); - nglField.setText(String.valueOf(config.getNgl())); + setNglFieldText(String.valueOf(config.getNgl())); + fitCheckBox.setSelected(config.isFit()); + toggleFitMode(); updateCommandPreview(); @@ -778,24 +778,9 @@ public class Main extends JFrame { gbc.gridx = 1; gbc.weightx = 1.0; - nglField = new JTextField("999", 10); + nglField = new JTextField("-1", 10); nglField.setCaretColor(Color.WHITE); - nglField.getDocument().addDocumentListener(new javax.swing.event.DocumentListener() { - @Override - public void insertUpdate(javax.swing.event.DocumentEvent e) { - updateCommandPreview(); - } - - @Override - public void removeUpdate(javax.swing.event.DocumentEvent e) { - updateCommandPreview(); - } - - @Override - public void changedUpdate(javax.swing.event.DocumentEvent e) { - updateCommandPreview(); - } - }); + nglField.getDocument().addDocumentListener(createNglDocumentListener()); panel.add(nglField, gbc); // Fit parameter @@ -944,14 +929,39 @@ public class Main extends JFrame { return panel; } + private void toggleFitMode() { + nglField.setEnabled(!fitCheckBox.isSelected()); + } + private void updateCommandPreview() { + if (isProfileLoading) { + return; + } String command = buildCommand(); commandPreviewArea.setText(command); } - private void toggleFitMode() { - nglField.setEnabled(!fitCheckBox.isSelected()); - updateCommandPreview(); + private void setNglFieldText(String text) { + nglField.setText(text); + } + + private javax.swing.event.DocumentListener createNglDocumentListener() { + return new javax.swing.event.DocumentListener() { + @Override + public void insertUpdate(javax.swing.event.DocumentEvent e) { + updateCommandPreview(); + } + + @Override + public void removeUpdate(javax.swing.event.DocumentEvent e) { + updateCommandPreview(); + } + + @Override + public void changedUpdate(javax.swing.event.DocumentEvent e) { + updateCommandPreview(); + } + }; } private void copyCommandToClipboard() {