Refactor CLI and LLM runtime handling for improved user experience
- Removed deprecated console usage in favor of structured logging functions for error handling and user prompts. - Enhanced CLI prompts for LLM runtime and preset selection, utilizing menu helpers for better user interaction. - Updated GPU pool scanning output with improved formatting and error indication for clarity. - Refactored setup wizard to streamline LLM runtime and preset configuration, ensuring a more intuitive setup process. - Improved documentation and user feedback in CLI outputs to enhance overall usability.
This commit is contained in:
+52
-11
@@ -26,12 +26,18 @@ OLLAMA_PRESETS: dict[str, list[str]] = {
|
||||
"empty": [],
|
||||
}
|
||||
|
||||
PRESET_HELP = (
|
||||
"recommended — Qwen2.5 7B abliterate (RU/EN, мало отказов, ~5GB)\n"
|
||||
"light — qwen2.5:3b (быстрее, слабее)\n"
|
||||
"stock — официальный qwen2.5:7b (больше цензуры)\n"
|
||||
"alt — другой abliterate-пак 7B\n"
|
||||
"empty — только runtime, без pull"
|
||||
OLLAMA_PRESET_LABELS: dict[str, str] = {
|
||||
"recommended": "Qwen2.5 7B abliterate (RU/EN, мало отказов, ~5GB)",
|
||||
"light": "qwen2.5:3b (быстрее, слабее)",
|
||||
"stock": "официальный qwen2.5:7b (больше цензуры)",
|
||||
"alt": "другой abliterate-пак 7B",
|
||||
"empty": "только runtime, без pull",
|
||||
"keep": "не менять ollama-models.yaml",
|
||||
}
|
||||
|
||||
# Deprecated text blob — prefer menu helpers below.
|
||||
PRESET_HELP = "\n".join(
|
||||
f"{k} — {v}" for k, v in OLLAMA_PRESET_LABELS.items() if k != "keep"
|
||||
)
|
||||
|
||||
LLAMACPP_PRESETS: dict[str, list[str]] = {
|
||||
@@ -47,13 +53,48 @@ LLAMACPP_PRESETS: dict[str, list[str]] = {
|
||||
"empty": [],
|
||||
}
|
||||
|
||||
LLAMACPP_PRESET_HELP = (
|
||||
"recommended — Qwen2.5 7B abliterate GGUF Q4_K_M (~4.7GB, мало отказов)\n"
|
||||
"light — Qwen2.5 3B Instruct Q4_K_M (~2GB)\n"
|
||||
"stock — официальный Qwen2.5 7B Instruct Q4_K_M\n"
|
||||
"empty — только llama-server, GGUF положи вручную / правь llamacpp-models.yaml"
|
||||
LLAMACPP_PRESET_LABELS: dict[str, str] = {
|
||||
"recommended": "Qwen2.5 7B abliterate GGUF Q4_K_M (~4.7GB, мало отказов)",
|
||||
"light": "Qwen2.5 3B Instruct Q4_K_M (~2GB)",
|
||||
"stock": "официальный Qwen2.5 7B Instruct Q4_K_M",
|
||||
"empty": "только llama-server, GGUF вручную",
|
||||
"keep": "не менять llamacpp-models.yaml",
|
||||
}
|
||||
|
||||
LLAMACPP_PRESET_HELP = "\n".join(
|
||||
f"{k} — {v}" for k, v in LLAMACPP_PRESET_LABELS.items() if k != "keep"
|
||||
)
|
||||
|
||||
LLM_RUNTIME_LABELS: dict[str, str] = {
|
||||
"none": "только SwarmUI",
|
||||
"ollama": "Ollama (+ pull моделей)",
|
||||
"llamacpp": "llama.cpp server (+ GGUF)",
|
||||
}
|
||||
|
||||
|
||||
def llm_runtime_menu() -> list:
|
||||
from gpu_rent.prompts import MenuItem
|
||||
|
||||
return [MenuItem(k, f"{k} — {LLM_RUNTIME_LABELS[k]}") for k in ("none", "ollama", "llamacpp")]
|
||||
|
||||
|
||||
def ollama_preset_menu(*, include_keep: bool = False) -> list:
|
||||
from gpu_rent.prompts import MenuItem
|
||||
|
||||
keys = list(OLLAMA_PRESETS.keys())
|
||||
if include_keep:
|
||||
keys.append("keep")
|
||||
return [MenuItem(k, OLLAMA_PRESET_LABELS.get(k, k)) for k in keys]
|
||||
|
||||
|
||||
def llamacpp_preset_menu(*, include_keep: bool = False) -> list:
|
||||
from gpu_rent.prompts import MenuItem
|
||||
|
||||
keys = list(LLAMACPP_PRESETS.keys())
|
||||
if include_keep:
|
||||
keys.append("keep")
|
||||
return [MenuItem(k, LLAMACPP_PRESET_LABELS.get(k, k)) for k in keys]
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class OllamaModelEntry:
|
||||
|
||||
Reference in New Issue
Block a user