diff --git a/pkgs/development/python-modules/langchain-core/update.sh b/pkgs/development/python-modules/langchain-core/update.sh index 5568df95e43b..fa844dfcd029 100755 --- a/pkgs/development/python-modules/langchain-core/update.sh +++ b/pkgs/development/python-modules/langchain-core/update.sh @@ -14,6 +14,7 @@ declare -ar packages=( langchain-mongodb langchain-ollama langchain-openai + langchain-perplexity langchain-tests langchain-text-splitters ) diff --git a/pkgs/development/python-modules/langchain-perplexity/default.nix b/pkgs/development/python-modules/langchain-perplexity/default.nix new file mode 100644 index 000000000000..6f4a24f9ab2b --- /dev/null +++ b/pkgs/development/python-modules/langchain-perplexity/default.nix @@ -0,0 +1,77 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + nix-update-script, + + # build-system + pdm-backend, + + # dependencies + langchain-core, + openai, + + # tests + langchain-tests, + pytest-asyncio, + pytest-cov, + pytest-mock, + pytestCheckHook, +}: + +buildPythonPackage rec { + pname = "langchain-perplexity"; + version = "0.1.1"; + pyproject = true; + + src = fetchFromGitHub { + owner = "langchain-ai"; + repo = "langchain"; + tag = "langchain-perplexity==${version}"; + hash = "sha256-s20AnDsyLCzpG45QqgZp0WzlbdVrHNfpUQsMPUaF1qs="; + }; + + sourceRoot = "${src.name}/libs/partners/perplexity"; + + build-system = [ pdm-backend ]; + + dependencies = [ + langchain-core + openai + ]; + + pythonRelaxDeps = [ + # Each component release requests the exact latest core. + # That prevents us from updating individual components. + "langchain-core" + ]; + + nativeCheckInputs = [ + langchain-tests + pytest-asyncio + pytest-cov + pytest-mock + pytestCheckHook + ]; + + pytestFlagsArray = [ "tests/unit_tests" ]; + + pythonImportsCheck = [ "langchain_perplexity" ]; + + passthru.updateScript = nix-update-script { + extraArgs = [ + "--version-regex" + "langchain-perplexity==([0-9.]+)" + ]; + }; + + meta = { + changelog = "https://github.com/langchain-ai/langchain-perplexity/releases/tag/langchain-perplexity==${version}"; + description = "Build LangChain applications with Perplexity"; + homepage = "https://github.com/langchain-ai/langchain/tree/master/libs/partners/perplexity"; + license = lib.licenses.mit; + maintainers = [ + lib.maintainers.sarahec + ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 36c2db9e9a03..7eedb3337223 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -7542,6 +7542,8 @@ self: super: with self; { langchain-openai = callPackage ../development/python-modules/langchain-openai { }; + langchain-perplexity = callPackage ../development/python-modules/langchain-perplexity { }; + langchain-tests = callPackage ../development/python-modules/langchain-tests { }; langchain-text-splitters = callPackage ../development/python-modules/langchain-text-splitters { };