From 48029ea577290e99778b1ecc991d32baad8e9530 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Fri, 6 Mar 2026 03:07:58 +0100 Subject: [PATCH] python3Packages.heretic-llm: init at 1.2.0 Tool to remove censorship removal for language models https://github.com/p-e-w/heretic --- pkgs/by-name/he/heretic/package.nix | 1 + .../python-modules/heretic-llm/default.nix | 90 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 3 files changed, 93 insertions(+) create mode 100644 pkgs/by-name/he/heretic/package.nix create mode 100644 pkgs/development/python-modules/heretic-llm/default.nix diff --git a/pkgs/by-name/he/heretic/package.nix b/pkgs/by-name/he/heretic/package.nix new file mode 100644 index 000000000000..5b5529712aa0 --- /dev/null +++ b/pkgs/by-name/he/heretic/package.nix @@ -0,0 +1 @@ +{ python3Packages }: with python3Packages; toPythonApplication heretic-llm diff --git a/pkgs/development/python-modules/heretic-llm/default.nix b/pkgs/development/python-modules/heretic-llm/default.nix new file mode 100644 index 000000000000..749d46b9fad9 --- /dev/null +++ b/pkgs/development/python-modules/heretic-llm/default.nix @@ -0,0 +1,90 @@ +{ + lib, + accelerate, + bitsandbytes, + buildPythonPackage, + datasets, + fetchFromGitHub, + # geom-median, + hf-transfer, + huggingface-hub, + imageio, + kernels, + matplotlib, + numpy, + optuna, + # pacmap, + peft, + psutil, + pydantic-settings, + questionary, + rich, + scikit-learn, + transformers, + uv-build, +}: + +buildPythonPackage (finalAttrs: { + pname = "heretic-llm"; + version = "1.2.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "p-e-w"; + repo = "heretic"; + tag = "v${finalAttrs.version}"; + hash = "sha256-KmqbOAOII1SP7wpdvGxtzQJt5NmlnF/o99NuZ21vO0s="; + }; + + postPatch = '' + substituteInPlace pyproject.toml \ + --replace-fail "uv_build>=0.8.11,<0.9.0" "uv_build" + ''; + + pythonRelaxDeps = [ + "huggingface-hub" + "transformers" + ]; + + build-system = [ uv-build ]; + + dependencies = [ + accelerate + bitsandbytes + datasets + hf-transfer + huggingface-hub + kernels + optuna + peft + psutil + pydantic-settings + questionary + rich + transformers + ]; + + optional-dependencies = { + research = [ + # geom-median + imageio + matplotlib + numpy + # pacmap + scikit-learn + ]; + }; + + pythonImportsCheck = [ "heretic" ]; + + meta = { + description = "Tool to remove censorship removal for language models"; + homepage = "https://github.com/p-e-w/heretic"; + changelog = "https://github.com/p-e-w/heretic/releases/tag/v${finalAttrs.src.tag}"; + license = with lib.licenses; [ + agpl3Only + agpl3Plus + ]; + maintainers = with lib.maintainers; [ fab ]; + }; +}) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 8e27fb27d8d6..28daecc9aab2 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -6970,6 +6970,8 @@ self: super: with self; { herepy = callPackage ../development/python-modules/herepy { }; + heretic-llm = callPackage ../development/python-modules/heretic-llm { }; + hetzner = callPackage ../development/python-modules/hetzner { }; heudiconv = callPackage ../development/python-modules/heudiconv { };