Ollama: Bring back.
This commit is contained in:
parent
acc699a567
commit
d3e936f844
17
flake.lock
17
flake.lock
|
@ -609,6 +609,22 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nvimOllama": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1717906114,
|
||||
"narHash": "sha256-8tW5tp2GiYw+PnR7rqiKfykLW/yqvGOtqauZCgEeQCg=",
|
||||
"owner": "nomnivore",
|
||||
"repo": "ollama.nvim",
|
||||
"rev": "45e58779fecde7ac5b8f62800bbe7180d4b48507",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nomnivore",
|
||||
"repo": "ollama.nvim",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nvimPlenary": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
|
@ -746,6 +762,7 @@
|
|||
"nvimGruvboxMaterial": "nvimGruvboxMaterial",
|
||||
"nvimIndentoMatic": "nvimIndentoMatic",
|
||||
"nvimLspconfig": "nvimLspconfig",
|
||||
"nvimOllama": "nvimOllama",
|
||||
"nvimPlenary": "nvimPlenary",
|
||||
"nvimTelescope": "nvimTelescope",
|
||||
"nvimTodo": "nvimTodo",
|
||||
|
|
|
@ -82,6 +82,10 @@
|
|||
url = "github:neovim/nvim-lspconfig";
|
||||
flake = false;
|
||||
};
|
||||
nvimOllama = {
|
||||
url = "github:nomnivore/ollama.nvim";
|
||||
flake = false;
|
||||
};
|
||||
nvimPlenary = {
|
||||
url = "github:nvim-lua/plenary.nvim";
|
||||
flake = false;
|
||||
|
|
|
@ -35,6 +35,7 @@ in
|
|||
"${inputs.nvimGruvboxMaterial}"
|
||||
"${inputs.nvimIndentoMatic}"
|
||||
"${inputs.nvimLspconfig}"
|
||||
"${inputs.nvimOllama}"
|
||||
"${inputs.nvimPlenary}"
|
||||
"${inputs.nvimTelescope}"
|
||||
"${inputs.nvimTodo}"
|
||||
|
@ -65,6 +66,7 @@ in
|
|||
./module/plugin/Align.nix
|
||||
./module/plugin/Treesitter.nix
|
||||
./module/plugin/Fold.nix
|
||||
./module/plugin/Ollama.nix
|
||||
./module/plugin/Colorizer.nix
|
||||
./module/plugin/lsp/Go.nix
|
||||
./module/plugin/lsp/Haskell.nix
|
||||
|
@ -80,6 +82,7 @@ in
|
|||
./module/key/Filetree.nix
|
||||
./module/key/Gitsigns.nix
|
||||
./module/key/Navigation.nix
|
||||
./module/key/Prompt.nix
|
||||
./module/key/Save.nix
|
||||
./module/key/Sort.nix
|
||||
./module/key/TabWidth.nix
|
||||
|
|
7
home/config/nvim/module/key/Prompt.nix
Normal file
7
home/config/nvim/module/key/Prompt.nix
Normal file
|
@ -0,0 +1,7 @@
|
|||
{ ... }:
|
||||
{
|
||||
text = ''
|
||||
rekey_normal("<Leader>p", ":<c-u>lua require('ollama').prompt()<cr>")
|
||||
rekey_visual("<Leader>p", ":<c-u>lua require('ollama').prompt()<cr>")
|
||||
'';
|
||||
}
|
18
home/config/nvim/module/plugin/Ollama.nix
Normal file
18
home/config/nvim/module/plugin/Ollama.nix
Normal file
|
@ -0,0 +1,18 @@
|
|||
{ config, ... }:
|
||||
{
|
||||
text = ''
|
||||
require("ollama").setup {
|
||||
model = "${config.setting.ollama.primaryModel}",
|
||||
url = "http://127.0.0.1:11434",
|
||||
-- View the actual default prompts in ./lua/ollama/prompts.lua
|
||||
prompts = {
|
||||
-- Sample_Prompt = {
|
||||
-- prompt = "This is a sample prompt that receives $input and $sel(ection), among others.",
|
||||
-- input_label = "> ",
|
||||
-- model = "mistral",
|
||||
-- action = "display",
|
||||
-- }
|
||||
}
|
||||
}
|
||||
'';
|
||||
}
|
27
home/program/bash/module/Ask.nix
Normal file
27
home/program/bash/module/Ask.nix
Normal file
|
@ -0,0 +1,27 @@
|
|||
{ ... }:
|
||||
{
|
||||
text = ''
|
||||
# Ask general AI.
|
||||
# Usage: ask <QUERY>
|
||||
function ask() {
|
||||
curl http://localhost:11434/api/generate -d "{
|
||||
\"model\": \"''${OLLAMA_MODEL}\",
|
||||
\"prompt\":\"''${*}\"
|
||||
}" 2> /dev/null | parallel -j1 -- "echo {} | jq -r .response | tr -d '\n'"
|
||||
echo
|
||||
}
|
||||
|
||||
# Specify ask model.
|
||||
function ask_model() {
|
||||
export OLLAMA_MODEL="''${1}"
|
||||
}
|
||||
|
||||
function _complete_ask_model() {
|
||||
local IFS=$'\n'
|
||||
local models=($(ollama list | sed -e "1d" | cut -f1))
|
||||
_autocomplete_first ''${models[@]}
|
||||
}
|
||||
|
||||
complete -F _complete_ask_model ask_model
|
||||
'';
|
||||
}
|
11
home/program/bash/module/Zapret.nix
Normal file
11
home/program/bash/module/Zapret.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{ ... }:
|
||||
{
|
||||
text = ''
|
||||
# FRKN.
|
||||
# SOURCE: https://github.com/bol-van/zapret
|
||||
function zapret() {
|
||||
iptables -t mangle -I POSTROUTING -p tcp -m multiport --dports 80,443 -m connbytes --connbytes-dir=original --connbytes-mode=packets --connbytes 1:6 -m mark ! --mark 0x40000000/0x40000000 -j NFQUEUE --queue-num 201 --queue-bypass
|
||||
nfqws --pidfile=/run/nfqws.pid --qnum=201 ''${@}
|
||||
}
|
||||
'';
|
||||
}
|
|
@ -11,6 +11,7 @@
|
|||
builder.client.enable = true;
|
||||
distrobox.enable = true;
|
||||
keyd.enable = true;
|
||||
ollama.enable = true;
|
||||
print.enable = true;
|
||||
virtmanager.enable = true;
|
||||
amd = {
|
||||
|
|
61
module/Ollama.nix
Normal file
61
module/Ollama.nix
Normal file
|
@ -0,0 +1,61 @@
|
|||
# SRC: https://github.com/ollama/ollama
|
||||
{
|
||||
pkgsStable,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
let
|
||||
pkgs = pkgsStable;
|
||||
cfg = config.module.ollama;
|
||||
in
|
||||
{
|
||||
options = {
|
||||
module.ollama = {
|
||||
enable = mkEnableOption "Local LLM server";
|
||||
primaryModel = mkOption {
|
||||
default = "llama3.2";
|
||||
type = types.str;
|
||||
};
|
||||
models = mkOption {
|
||||
default = [ cfg.primaryModel ];
|
||||
type = types.listOf types.str;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
environment = {
|
||||
# Specify default model.
|
||||
variables.OLLAMA_MODEL = cfg.primaryModel;
|
||||
};
|
||||
|
||||
systemd.services = {
|
||||
# Enable Ollama server.
|
||||
ollama = {
|
||||
description = "Ollama LLM server.";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
wants = [ "NetworkManager-wait-online.service" ];
|
||||
after = [ "NetworkManager-wait-online.service" ];
|
||||
serviceConfig.Type = "simple";
|
||||
script = ''
|
||||
HOME=/root ${getExe pkgs.ollama} serve
|
||||
'';
|
||||
};
|
||||
|
||||
# Download Ollama models.
|
||||
ollama-pull = {
|
||||
description = "Ollama LLM model.";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
wants = [ "ollama.service" ];
|
||||
after = [ "ollama.service" ];
|
||||
serviceConfig.Type = "simple";
|
||||
script = ''
|
||||
sleep 5
|
||||
${getExe pkgs.ollama} pull ${concatStringsSep " " cfg.models}
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
Loading…
Reference in a new issue