diff --git a/flake.lock b/flake.lock index 04ee13ee..9828fa8a 100644 --- a/flake.lock +++ b/flake.lock @@ -1130,6 +1130,22 @@ "url": "https://github.com/NixOS/nixpkgs/archive/356624c12086a18f2ea2825fed34523d60ccc4e3.tar.gz" } }, + "nixpkgs-ollama": { + "locked": { + "lastModified": 1745930157, + "narHash": "sha256-y3h3NLnzRSiUkYpnfvnS669zWZLoqqI6NprtLQ+5dck=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "46e634be05ce9dc6d4db8e664515ba10b78151ae", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "nixpkgs-regression": { "locked": { "lastModified": 1643052045, @@ -1639,6 +1655,7 @@ "nixpak": "nixpak", "nixpkgs": "nixpkgs_3", "nixpkgs-darwin": "nixpkgs-darwin", + "nixpkgs-ollama": "nixpkgs-ollama", "nixpkgs-stable": "nixpkgs-stable_3", "nixpkgs-unstable": "nixpkgs-unstable_2", "nuenv": "nuenv", diff --git a/flake.nix b/flake.nix index e31583b5..dc0fa721 100644 --- a/flake.nix +++ b/flake.nix @@ -39,6 +39,8 @@ nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-24.11"; + nixpkgs-ollama.url = "github:nixos/nixpkgs/nixos-unstable"; + # for macos # nixpkgs-darwin.url = "github:nixos/nixpkgs/nixpkgs-24.11-darwin"; nixpkgs-darwin.url = "github:nixos/nixpkgs/nixpkgs-unstable"; diff --git a/home/base/tui/editors/neovim/nvim/lua/plugins/avante.lua b/home/base/tui/editors/neovim/nvim/lua/plugins/avante.lua index 471b9305..877d502c 100644 --- a/home/base/tui/editors/neovim/nvim/lua/plugins/avante.lua +++ b/home/base/tui/editors/neovim/nvim/lua/plugins/avante.lua @@ -21,6 +21,11 @@ return { opts = { -- add any opts here provider = "deepseek_coder", + ollama = { + endpoint = "http://127.0.0.1:11434", -- Note that there is no /v1 at the end. + model = "modelscope.cn/unsloth/Qwen3-30B-A3B-GGUF", + -- model = "modelscope.cn/unsloth/Qwen3-235B-A22B-GGUF", + }, vendors = { openrouter_claude_4_7_sonnet = { __inherited_from = "openai", diff --git a/modules/nixos/desktop/ai/default.nix b/modules/nixos/desktop/ai/default.nix new file mode 100644 index 00000000..eeb48a40 --- /dev/null +++ b/modules/nixos/desktop/ai/default.nix @@ -0,0 +1,3 @@ +{mylib, ...}: { + imports = mylib.scanPaths ./.; +} diff --git a/modules/nixos/desktop/ai/ollama.nix b/modules/nixos/desktop/ai/ollama.nix new file mode 100644 index 00000000..55a49a15 --- /dev/null +++ b/modules/nixos/desktop/ai/ollama.nix @@ -0,0 +1,21 @@ +{ + pkgs, + nixpkgs-ollama, + ... +}: let + pkgs-ollama = import nixpkgs-ollama { + inherit (pkgs) system; + # To use cuda, we need to allow the installation of non-free software + config.allowUnfree = true; + }; +in { + services.ollama = rec { + enable = true; + package = pkgs-ollama.ollama; + acceleration = "cuda"; + host = "127.0.0.1"; + port = 11434; + home = "/var/lib/ollama"; + models = "${home}/models"; + }; +}