57 lines
1.8 KiB
Nix
57 lines
1.8 KiB
Nix
{ inputs, ... }:
|
|
{
|
|
flake.modules.nixos.aquatic-ai =
|
|
{ config, ... }:
|
|
let
|
|
llama_model="unsloth/Qwen3.6-27B-GGUF:Q4_K_M";
|
|
in
|
|
{
|
|
age.secrets.hermesenv.file = ../../../../secrets/hermes-env.age;
|
|
|
|
imports = [ inputs.hermes-agent.nixosModules.default ];
|
|
services.hermes-agent = {
|
|
enable = true;
|
|
settings = {
|
|
model = {
|
|
provider = "custom";
|
|
base_url = "http://127.0.0.1:8080/v1";
|
|
default = "${llama_model}"; # from curl http://localhost:8080/v1/models
|
|
context_length = 120000;
|
|
supports_vision = true;
|
|
};
|
|
compression = {
|
|
enabled = true;
|
|
threshold = 0.85;
|
|
summary_model = "${llama_model}"; # same one from model.default
|
|
};
|
|
|
|
};
|
|
environmentFiles = [ config.age.secrets.hermesenv.path ];
|
|
addToSystemPackages = true;
|
|
};
|
|
|
|
systemd.services.hermes-dashboard = {
|
|
description = "Hermes Agent web dashboard";
|
|
after = [ "network.target" "hermes-agent.service" ];
|
|
wantedBy = [ "multi-user.target" ];
|
|
|
|
environment = {
|
|
HERMES_HOME = "${config.services.hermes-agent.stateDir}/.hermes";
|
|
};
|
|
|
|
serviceConfig = {
|
|
Type = "simple";
|
|
User = config.services.hermes-agent.user;
|
|
Group = config.services.hermes-agent.group;
|
|
ExecStart = "${config.services.hermes-agent.package}/bin/hermes dashboard --host 127.0.0.1 --port 9119 --no-open";
|
|
Restart = "always";
|
|
RestartSec = 5;
|
|
|
|
NoNewPrivileges = true;
|
|
ProtectSystem = "strict";
|
|
PrivateTmp = true;
|
|
ReadWritePaths = [ config.services.hermes-agent.stateDir ];
|
|
};
|
|
};
|
|
};
|
|
}
|