diff --git a/README.md b/README.md index 55d0bd3..7016812 100644 --- a/README.md +++ b/README.md @@ -52,6 +52,28 @@ 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 ``` +## Setup + +### lm-launcher.properties + +The launcher reads `lm-launcher.properties` on startup. It requires at least the following keys: + +| Key | Description | Example | +|-----|-------------|---------| +| `models` | Path to the directory containing GGUF model files (scanned on startup) | `/mnt/data/data/lm/models/gguf/` | +| `console` | Command template to launch a terminal; `CMD` is replaced with the resolved app command | `/usr/bin/konsole --noclose -e CMD` | + +Example: + +```properties +models=/mnt/data/data/lm/models/gguf/ +console=/usr/bin/konsole --noclose -e CMD +``` + +### Default configuration files + +The repository ships with default `lm-launcher.properties`, `models.json`, and `apps.json` files. These are meant as reference examples — copy them and adjust the paths and settings to match your environment. Apps and models can be managed in the GUI. + ## Files - `lm-launcher.properties` – launcher configuration diff --git a/apps.json b/apps.json index 7e32437..f1142e6 100644 --- a/apps.json +++ b/apps.json @@ -1 +1,663 @@ -{"apps":[{"path":"file:///home/sb/lm/koboldcpp-rocm/koboldcpp.py","interpreter":"file:///usr/bin/python","arguments":[],"appArguments":[{"argument":"--usecublas","optional":true,"default_":true},{"argument":"mmq","optional":true,"default_":false},{"argument":"lowvram","optional":true,"default_":false},{"argument":"0","optional":true,"default_":true},{"argument":"--gpulayers","optional":true,"default_":true},{"argument":"GPU_LAYERS","optional":true,"default_":true},{"argument":"--smartcontext","optional":true,"default_":false},{"argument":"--noshift","optional":true,"default_":false},{"argument":"--contextsize","optional":false,"default_":true},{"argument":"CONTEXT_SIZE","optional":false,"default_":true},{"argument":"--launch","optional":false,"default_":true},{"argument":"--host","optional":true,"default_":false},{"argument":"0.0.0.0","optional":true,"default_":false},{"argument":"--threads","optional":false,"default_":true},{"argument":"THREADS","optional":false,"default_":true},{"argument":"--model","optional":false,"default_":true},{"argument":"MODEL","optional":false,"default_":true}],"modelSettings":[]},{"path":"file:///home/sb/lm/llama.cpp/llama-server","interpreter":null,"arguments":[],"appArguments":[{"argument":"-nkvo","optional":true,"default_":false},{"argument":"--parallel","optional":true,"default_":false},{"argument":"2","optional":true,"default_":false},{"argument":"4","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":false,"default_":true},{"argument":"GPU_LAYERS","optional":false,"default_":true},{"argument":"--ctx-size","optional":false,"default_":true},{"argument":"CONTEXT_SIZE","optional":false,"default_":true},{"argument":"-m","optional":false,"default_":true},{"argument":"MODEL","optional":false,"default_":true}],"modelSettings":[{"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_":true},{"argument":"2","optional":true,"default_":true},{"argument":"4","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":false,"default_":true},{"argument":"GPU_LAYERS","optional":false,"default_":true},{"argument":"--ctx-size","optional":false,"default_":true},{"argument":"CONTEXT_SIZE","optional":false,"default_":true},{"argument":"-m","optional":false,"default_":true},{"argument":"MODEL","optional":false,"default_":true}]}]},{"path":"file:///home/sb/lm/SillyTavern/start.sh","interpreter":null,"arguments":[],"appArguments":[],"modelSettings":[]},{"path":"file:///home/sb/lm/ollama-oai-bridge/start.sh","interpreter":null,"arguments":[],"appArguments":[],"modelSettings":[]}]} \ No newline at end of file +{ + "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": [] + } + ] +} diff --git a/lm-launcher.properties b/lm-launcher.properties index 2658b5a..6172cbc 100644 --- a/lm-launcher.properties +++ b/lm-launcher.properties @@ -1,2 +1,2 @@ models=/mnt/data/data/lm/models/gguf/ -console=/usr/bin/konsole -e CMD +console=/usr/bin/konsole --noclose -e CMD diff --git a/models.json b/models.json index a821160..67fd33d 100644 --- a/models.json +++ b/models.json @@ -1 +1,43 @@ -{"models":[{"path":"/mnt/data/data/lm/models/gguf/m/Qwen3.6-35B-A3B-UD-Q5_K_XL-mtp.gguf","contextSize":16000,"maxContextSize":128000,"gpuLayers":99,"threads":8,"temperature":0.8,"topP":0.95,"topK":40,"minP":0.05,"promptTemplate":"","ctime":1779609453785},{"path":"/home/sb/lm/models/Meta-Llama-3.1-8B-Instruct-Q8_0.gguf","contextSize":32768,"maxContextSize":32768,"gpuLayers":99,"threads":6,"temperature":0.8,"topP":0.95,"topK":40,"minP":0.05,"promptTemplate":"llama-3","ctime":0}]} \ No newline at end of file +{ + "models": [ + { + "path": "/mnt/data/data/lm/models/gguf/xl/MiniMax-M2.7-UD-IQ4_XS-00001-of-00004.gguf", + "contextSize": 70000, + "maxContextSize": 70000, + "gpuLayers": 16, + "threads": 8, + "temperature": 0.8, + "topP": 0.95, + "topK": 40, + "minP": 0.05, + "promptTemplate": "", + "ctime": 1780078731016 + }, + { + "path": "/mnt/data/data/lm/models/gguf/l/gemma-4-31B-it-UD-Q5_K_XL.gguf", + "contextSize": 16000, + "maxContextSize": 128000, + "gpuLayers": 99, + "threads": 6, + "temperature": 1.0, + "topP": 0.95, + "topK": 64, + "minP": 0.05, + "promptTemplate": "", + "ctime": 1779726285456 + }, + { + "path": "/mnt/data/data/lm/models/gguf/l/Qwen3.6-27B-UD-Q5_K_XL-mtp.gguf", + "contextSize": 110000, + "maxContextSize": 128000, + "gpuLayers": 99, + "threads": 8, + "temperature": 0.6, + "topP": 0.95, + "topK": 20, + "minP": 0.0, + "promptTemplate": "", + "ctime": 1779607347232 + } + ] +}