started to draft out configuration of continue models
This commit is contained in:
parent
7b6344b419
commit
77ab4781ac
4 changed files with 154 additions and 52 deletions
|
@ -65,7 +65,6 @@ in {
|
||||||
# builtins.elemAt osConfig.services.ollama.loadModels 0;
|
# builtins.elemAt osConfig.services.ollama.loadModels 0;
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
};
|
|
||||||
|
|
||||||
extensions = (
|
extensions = (
|
||||||
with open-vsx;
|
with open-vsx;
|
||||||
|
@ -119,4 +118,5 @@ in {
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,8 +30,65 @@
|
||||||
graphicsAcceleration.enable = true;
|
graphicsAcceleration.enable = true;
|
||||||
directAccess.enable = true;
|
directAccess.enable = true;
|
||||||
};
|
};
|
||||||
|
ai = {
|
||||||
|
enable = true;
|
||||||
|
# TODO: benchmark twilight against defiant and prune this list of models that are faster on defiant
|
||||||
|
models = {
|
||||||
|
# conversation models
|
||||||
|
"lamma3.1:8b" = {
|
||||||
|
model = "lamma3.1:8b";
|
||||||
|
# TODO: figure out what should be in this array
|
||||||
|
# roles = [""];
|
||||||
|
};
|
||||||
|
"deepseek-r1:8b" = {
|
||||||
|
model = "deepseek-r1:8b";
|
||||||
|
# TODO: figure out what should be in this array
|
||||||
|
# roles = [""];
|
||||||
|
};
|
||||||
|
"deepseek-r1:32b" = {
|
||||||
|
model = "deepseek-r1:32b";
|
||||||
|
# TODO: figure out what should be in this array
|
||||||
|
# roles = [""];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# auto complete models
|
||||||
|
"qwen2.5-coder:1.5b-base" = {
|
||||||
|
model = "qwen2.5-coder:1.5b-base";
|
||||||
|
# TODO: figure out what should be in this array
|
||||||
|
# roles = [""];
|
||||||
|
};
|
||||||
|
"qwen2.5-coder:7b" = {
|
||||||
|
model = "qwen2.5-coder:7b";
|
||||||
|
# TODO: figure out what should be in this array
|
||||||
|
# roles = [""];
|
||||||
|
};
|
||||||
|
"deepseek-coder:6.7b" = {
|
||||||
|
model = "deepseek-coder:6.7b";
|
||||||
|
# TODO: figure out what should be in this array
|
||||||
|
# roles = [""];
|
||||||
|
};
|
||||||
|
"deepseek-coder:33b" = {
|
||||||
|
model = "deepseek-coder:33b";
|
||||||
|
# TODO: figure out what should be in this array
|
||||||
|
# roles = [""];
|
||||||
|
};
|
||||||
|
|
||||||
|
# agent models
|
||||||
|
"qwen3:32b" = {
|
||||||
|
model = "qwen3:32b";
|
||||||
|
# TODO: figure out what should be in this array
|
||||||
|
# roles = [""];
|
||||||
|
};
|
||||||
|
|
||||||
|
# embedding models
|
||||||
|
"nomic-embed-text:latest" = {
|
||||||
|
model = "nomic-embed-text:latest";
|
||||||
|
# TODO: figure out what should be in this array
|
||||||
|
# roles = [""];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
services = {
|
services = {
|
||||||
ollama = {
|
ollama = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
44
modules/nixos-modules/continue.nix
Normal file
44
modules/nixos-modules/continue.nix
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
{lib, ...}: {
|
||||||
|
options.host = {
|
||||||
|
ai = {
|
||||||
|
enable = lib.mkEnableOption "should we use AI on this machine";
|
||||||
|
models = lib.mkOption {
|
||||||
|
type = lib.types.attrsOf (lib.types.submodule ({name, ...}: {
|
||||||
|
option = {
|
||||||
|
name = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
default = name;
|
||||||
|
};
|
||||||
|
model = {
|
||||||
|
type = lib.types.str;
|
||||||
|
};
|
||||||
|
provider = {
|
||||||
|
type = lib.types.str;
|
||||||
|
default = "ollama";
|
||||||
|
};
|
||||||
|
apiBase = {
|
||||||
|
type = lib.types.str;
|
||||||
|
default = null;
|
||||||
|
};
|
||||||
|
roles = {
|
||||||
|
type = lib.types.listOf lib.types.enumOf [
|
||||||
|
"chat"
|
||||||
|
"autocomplete"
|
||||||
|
"embed"
|
||||||
|
"rerank"
|
||||||
|
"edit"
|
||||||
|
"apply"
|
||||||
|
"summarize"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}));
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = {
|
||||||
|
# TODO: configure ollama to download any modules listed in options.host.ai.models.{name}.model if options.host.ai.models.{name}.apiBase is null
|
||||||
|
# TODO: if we have any models that have a non null options.host.ai.models.{name}.apiBase then set services.ollama.enable to a lib.mkAfter true
|
||||||
|
};
|
||||||
|
}
|
|
@ -12,6 +12,7 @@
|
||||||
./impermanence.nix
|
./impermanence.nix
|
||||||
./disko.nix
|
./disko.nix
|
||||||
./ollama.nix
|
./ollama.nix
|
||||||
|
./continue.nix
|
||||||
./tailscale.nix
|
./tailscale.nix
|
||||||
./server
|
./server
|
||||||
];
|
];
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue