Loading nixos/modules/services/misc/llama-cpp.nix +40 −0 Original line number Diff line number Diff line Loading @@ -8,6 +8,12 @@ let cfg = config.services.llama-cpp; modelsPresetFile = if cfg.modelsPreset != null then pkgs.writeText "llama-models.ini" (lib.generators.toINI { } cfg.modelsPreset) else null; in { Loading @@ -32,6 +38,32 @@ in default = null; }; modelsPreset = lib.mkOption { type = lib.types.nullOr (lib.types.attrsOf lib.types.attrs); default = null; description = '' Models preset configuration as a Nix attribute set. This is converted to an INI file and passed to llama-server via --model-preset. See llama-server documentation for available options. ''; example = lib.literalExpression '' { "Qwen3-Coder-Next" = { hf-repo = "unsloth/Qwen3-Coder-Next-GGUF"; hf-file = "Qwen3-Coder-Next-UD-Q4_K_XL.gguf"; alias = "unsloth/Qwen3-Coder-Next"; fit = "on"; seed = "3407"; temp = "1.0"; top-p = "0.95"; min-p = "0.01"; top-k = "40"; jinja = "on"; }; } ''; }; extraFlags = lib.mkOption { type = lib.types.listOf lib.types.str; description = "Extra flags passed to llama-cpp-server."; Loading Loading @@ -77,6 +109,10 @@ in serviceConfig = { Type = "idle"; KillSignal = "SIGINT"; StateDirectory = "llama-cpp"; CacheDirectory = "llama-cpp"; WorkingDirectory = "/var/lib/llama-cpp"; Environment = [ "LLAMA_CACHE=/var/cache/llama-cpp" ]; ExecStart = let args = [ Loading @@ -93,6 +129,10 @@ in "--models-dir" cfg.modelsDir ] ++ lib.optionals (cfg.modelsPreset != null) [ "--models-preset" modelsPresetFile ] ++ cfg.extraFlags; in "${cfg.package}/bin/llama-server ${utils.escapeSystemdExecArgs args}"; Loading Loading
nixos/modules/services/misc/llama-cpp.nix +40 −0 Original line number Diff line number Diff line Loading @@ -8,6 +8,12 @@ let cfg = config.services.llama-cpp; modelsPresetFile = if cfg.modelsPreset != null then pkgs.writeText "llama-models.ini" (lib.generators.toINI { } cfg.modelsPreset) else null; in { Loading @@ -32,6 +38,32 @@ in default = null; }; modelsPreset = lib.mkOption { type = lib.types.nullOr (lib.types.attrsOf lib.types.attrs); default = null; description = '' Models preset configuration as a Nix attribute set. This is converted to an INI file and passed to llama-server via --model-preset. See llama-server documentation for available options. ''; example = lib.literalExpression '' { "Qwen3-Coder-Next" = { hf-repo = "unsloth/Qwen3-Coder-Next-GGUF"; hf-file = "Qwen3-Coder-Next-UD-Q4_K_XL.gguf"; alias = "unsloth/Qwen3-Coder-Next"; fit = "on"; seed = "3407"; temp = "1.0"; top-p = "0.95"; min-p = "0.01"; top-k = "40"; jinja = "on"; }; } ''; }; extraFlags = lib.mkOption { type = lib.types.listOf lib.types.str; description = "Extra flags passed to llama-cpp-server."; Loading Loading @@ -77,6 +109,10 @@ in serviceConfig = { Type = "idle"; KillSignal = "SIGINT"; StateDirectory = "llama-cpp"; CacheDirectory = "llama-cpp"; WorkingDirectory = "/var/lib/llama-cpp"; Environment = [ "LLAMA_CACHE=/var/cache/llama-cpp" ]; ExecStart = let args = [ Loading @@ -93,6 +129,10 @@ in "--models-dir" cfg.modelsDir ] ++ lib.optionals (cfg.modelsPreset != null) [ "--models-preset" modelsPresetFile ] ++ cfg.extraFlags; in "${cfg.package}/bin/llama-server ${utils.escapeSystemdExecArgs args}"; Loading