oizys/pkgs/llm/llm-with-plugins/default.nix

49 lines
1.1 KiB
Nix

{
pkgs,
...
}:
let
inherit (builtins) mapAttrs attrValues;
inherit (pkgs) python3Packages;
mkPlugin = name: attrs: python3Packages.callPackage (import (../. + "/llm-${name}") attrs) { };
llm = python3Packages.callPackage ../llm { };
pluginAttr = {
anthropic = {
version = "0.12";
hash = "sha256-7+5j5jZBFfaaqnfjvLTI+mz1PUuG8sB5nD59UCpJuR4=";
};
gemini = {
version = "0.10";
hash = "sha256-+ghsBvEY8GQAphdvG7Rdu3T/7yz64vmkuA1VGvqw1fU=";
};
cmd = {
version = "0.2a0";
hash = "sha256-RhwQEllpee/XP1p0nrgL4m+KjSZzf61J8l1jJGlg94E=";
};
jq = {
version = "0.1.1";
hash = "sha256-Mf/tbB9+UdmSRpulqv5Wagr8wjDcRrNs2741DNQZhO4=";
};
python = {
version = "0.1";
hash = "sha256-Z991f0AGO5iaCeoG9dkFhTLtuR45PgCS9awCvOAuPPs=";
};
};
pluginPackages = pluginAttr |> mapAttrs mkPlugin |> attrValues;
pyWithLlm = (
pkgs.python3.withPackages (
_:
[
llm
]
++ pluginPackages
)
);
in
pkgs.writeShellScriptBin "llm" ''
exec ${pyWithLlm}/bin/llm "$@"
''