{ pkgs, service_configs, config, inputs, optimizePackage, lib, ... }: { services.llama-cpp = { enable = true; model = builtins.toString ( pkgs.fetchurl { url = "https://huggingface.co/bartowski/nvidia_AceReason-Nemotron-7B-GGUF/resolve/main/nvidia_AceReason-Nemotron-7B-Q4_0.gguf"; sha256 = "27f93349ea88f3c84e53469288ac2ac3f5c985de9f8e00e275870e7e524bb3d8"; } ); port = service_configs.ports.llama_cpp; host = "0.0.0.0"; package = (optimizePackage inputs.llamacpp.packages.${pkgs.system}.vulkan); extraFlags = [ "-ngl" "9999" ]; }; # have to do this in order to get vulkan to work systemd.services.llama-cpp.serviceConfig.DynamicUser = lib.mkForce false; services.caddy.virtualHosts."llm.${service_configs.https.domain}".extraConfig = '' ${builtins.readFile ../secrets/caddy_auth} reverse_proxy :${builtins.toString config.services.llama-cpp.port} ''; }