From ec17e9b853d66b7e39c81959322529506704c667 Mon Sep 17 00:00:00 2001 From: Svjatoslav Agejenko Date: Fri, 21 Mar 2025 00:42:24 +0200 Subject: [PATCH] Code refactoring. Plan for fixing QwQ. --- doc/QwQ-32B Termination issue.odt | Bin 0 -> 66254 bytes pom.xml | 2 +- .../alyverkko_cli/commands/WizardCommand.java | 68 +++--------------- 3 files changed, 11 insertions(+), 59 deletions(-) create mode 100644 doc/QwQ-32B Termination issue.odt diff --git a/doc/QwQ-32B Termination issue.odt b/doc/QwQ-32B Termination issue.odt new file mode 100644 index 0000000000000000000000000000000000000000..c230de4c8b4db62206d30038404b33ce4ca315ae GIT binary patch literal 66254 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 eu.svjatoslav cli-helper - 1.2 + 1.3-SNAPSHOT org.testng diff --git a/src/main/java/eu/svjatoslav/alyverkko_cli/commands/WizardCommand.java b/src/main/java/eu/svjatoslav/alyverkko_cli/commands/WizardCommand.java index 9f00a24..9ccbff6 100644 --- a/src/main/java/eu/svjatoslav/alyverkko_cli/commands/WizardCommand.java +++ b/src/main/java/eu/svjatoslav/alyverkko_cli/commands/WizardCommand.java @@ -20,6 +20,7 @@ import java.util.Scanner; import java.util.stream.Collectors; import static eu.svjatoslav.alyverkko_cli.configuration.Configuration.DEFAULT_CONFIG_FILE_PATH; +import static eu.svjatoslav.commons.cli_helper.CLIHelper.*; public class WizardCommand implements Command { @@ -82,7 +83,7 @@ public class WizardCommand implements Command { config.setLlamaCliPath(new File(llamaCliPath)); // Default Temperature - float defaultTemp = getFloatInputWithDefault( + float defaultTemp = askFloat( "\nEnter default temperature (0-2). A lower value makes the AI more deterministic, while a higher value makes it more creative.", existingConfig != null ? existingConfig.getDefaultTemperature() : 0.7f, 0f, 2f @@ -90,7 +91,7 @@ public class WizardCommand implements Command { config.setDefaultTemperature(defaultTemp); // Thread Counts - int threadCount = getIntInputWithDefault( + int threadCount = askInteger( "\nEnter number of CPU threads for AI response generation. " + "RAM data transfer speed is usually the bottleneck here. " + "On a typical PC, while you might have 12 CPU cores, " + @@ -102,7 +103,7 @@ public class WizardCommand implements Command { ); config.setThreadCount(threadCount); - int batchThreadCount = getIntInputWithDefault( + int batchThreadCount = askInteger( "\nEnter number of CPU threads for input prompt processing. " + "CPU computing power is usually the bottleneck here (not the RAM bandwidth). " + "So you can utilize all CPU cores that you have here.", @@ -118,14 +119,13 @@ public class WizardCommand implements Command { models.addAll(existingConfig.getModels()); } - String choice = getInput("Would you like to try to autodiscover available models ?", "Y"); - if (choice.equalsIgnoreCase("Y")) { + if (askBoolean("Would you like to try to autodiscover available undefined models ?", true)) { discoverAndSuggestNewModels(config.getModelsDirectory(), models); } System.out.println("\nYou can now add models manually."); while (true) { - String alias = getInput("Enter desired model alias (leave empty to finish adding models): "); + String alias = askString("Enter desired model alias (leave empty to finish adding models): "); if (StringUtils.isBlank(alias)) break; String filePath = getInputWithDefault( @@ -134,7 +134,7 @@ public class WizardCommand implements Command { null ); - int contextSize = getIntInputWithDefault( + int contextSize = askInteger( "\nEnter context size in tokens. A higher value allows the model to remember more context.", 64000, 1024, @@ -153,8 +153,7 @@ public class WizardCommand implements Command { // Write configuration Path configPath = Path.of(DEFAULT_CONFIG_FILE_PATH); if (Files.exists(configPath) && !forceOption.isPresent()) { - String confirm = getInput("Configuration file already exists. Overwrite? (y/N)", "N"); - if (!confirm.equalsIgnoreCase("Y")) { + if (!askBoolean("Configuration file already exists. Overwrite?", false)) { System.out.println("Configuration not saved. Run with --force to overwrite."); return; } @@ -185,42 +184,6 @@ public class WizardCommand implements Command { return input.isEmpty() ? defaultValue : input; } - private float getFloatInputWithDefault(String prompt, float defaultValue, float min, float max) { - while (true) { - String input = getInput(prompt, String.valueOf(defaultValue)); - try { - float value = Float.parseFloat(input); - if (value >= min && value <= max) return value; - System.out.println("Value must be between " + min + " and " + max); - } catch (NumberFormatException e) { - System.out.println("Invalid number format. Try again."); - } - } - } - - private int getIntInputWithDefault(String prompt, int defaultValue, Integer min, Integer max) { - while (true) { - String input = getInput(prompt, String.valueOf(defaultValue)); - try { - int value = Integer.parseInt(input); - - if (max != null && value > max) { - System.out.println("Value must be less than or equal to " + max); - continue; - } - - if (min != null && value < min) { - System.out.println("Value must be greater than or equal to " + min); - continue; - } - - return value; - } catch (NumberFormatException e) { - System.out.println("Invalid number format. Try again."); - } - } - } - private void discoverAndSuggestNewModels(File modelsDir, List existingModels) { if (!modelsDir.exists()) { System.out.println("Models directory does not exist. Please create it first."); @@ -256,13 +219,11 @@ public class WizardCommand implements Command { String alias = suggestAlias(relativePath); System.out.println("\nFound new model: " + relativePath); System.out.println("Suggested alias: " + alias); - String choice = getInput("Would you like to add this model? (y/N) ", "N"); - if (choice.equalsIgnoreCase("Y")) { + if (askBoolean("Would you like to add this model? (y/N) ", false)) { ConfigurationModel model = new ConfigurationModel(); model.setAlias(alias); model.setFilesystemPath(relativePath); - int contextSize = getIntInputWithDefault( - "\nEnter context size in tokens. A higher value allows the model to remember more context.", + int contextSize = askInteger("\nEnter context size in tokens. A higher value allows the model to remember more context.", 64000, 1024, null @@ -279,14 +240,5 @@ public class WizardCommand implements Command { return alias.replaceAll("-+", "-").replaceAll("^-|-$", ""); } - private String getInput(String prompt, String defaultValue) { - Scanner scanner = new Scanner(System.in); - System.out.print(prompt + (defaultValue != null ? " [" + defaultValue + "]" : "") + ": "); - String input = scanner.nextLine().trim(); - return input.isEmpty() && defaultValue != null ? defaultValue : input; - } - private String getInput(String prompt) { - return getInput(prompt, null); - } } \ No newline at end of file -- 2.20.1