diff options
Diffstat (limited to 'pkgs/llmPython/default.nix')
| -rw-r--r-- | pkgs/llmPython/default.nix | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/pkgs/llmPython/default.nix b/pkgs/llmPython/default.nix new file mode 100644 index 0000000..0f53218 --- /dev/null +++ b/pkgs/llmPython/default.nix @@ -0,0 +1,85 @@ +{ + pkgs, + pkgsUnstable, + lib, + ... +}: +let + # Define all packages in a recursive attribute set + pythonPackages = rec { + llm = pkgsUnstable.python3.pkgs.buildPythonPackage rec { + pname = "llm"; + version = "0.24.2"; + format = "setuptools"; + + src = pkgsUnstable.fetchurl { + url = "https://files.pythonhosted.org/packages/source/l/llm/llm-0.24.2.tar.gz"; + sha256 = "sha256-4U8nIhg4hM4JaSIBtUzdlhlCSS8Nk8p0mmLQKzuL9Do="; + }; + + # Dependencies + propagatedBuildInputs = with pkgsUnstable.python3.pkgs; [ + pyyaml + click + click-default-group + condense-json + openai + pip + pluggy + puremagic + pydantic + python-ulid + setuptools + sqlite-migrate + sqlite-utils + ]; + + # Disable tests - enable if you have specific test dependencies + doCheck = false; + + # Basic import check + pythonImportsCheck = [ "llm" ]; + + meta = with lib; { + description = "CLI utility and Python library for interacting with Large Language Models from organizations like OpenAI, Anthropic and Gemini plus local models installed on your own machine."; + homepage = "https://github.com/simonw/llm"; + license = licenses.asl20; + }; + }; + + # Note, these are available in nixpkgs unstable, but are still behind the latest versions + llm-anthropic = pkgsUnstable.python3.pkgs.buildPythonPackage rec { + pname = "llm-anthropic"; + version = "0.15.1"; + format = "pyproject"; + + src = pkgs.fetchurl { + url = "https://files.pythonhosted.org/packages/source/l/llm_anthropic/llm_anthropic-0.15.1.tar.gz"; + sha256 = "sha256-C8xNs4oS51YxAn1iJkk8j4sJ5dO0pVOwIiP4mv/MnQk="; + }; + + nativeBuildInputs = with pkgsUnstable.python3.pkgs; [ + setuptools + wheel + ]; + # Dependencies + propagatedBuildInputs = with pkgsUnstable.python3.pkgs; [ + anthropic + llm # Use the llm we defined above + ]; + + # Disable tests - enable if you have specific test dependencies + doCheck = false; + + # Basic import check + pythonImportsCheck = [ "llm_anthropic" ]; + + meta = with lib; { + description = "LLM access to models by Anthropic, including the Claude series"; + homepage = "https://github.com/simonw/llm-anthropic"; + license = licenses.asl20; + }; + }; + }; +in +pythonPackages |
