diff --git a/pkgs/development/python-modules/langchain-core/update.sh b/pkgs/development/python-modules/langchain-core/update.sh index 5568df95e43b..fb2ba5c1fd4e 100755 --- a/pkgs/development/python-modules/langchain-core/update.sh +++ b/pkgs/development/python-modules/langchain-core/update.sh @@ -16,6 +16,7 @@ declare -ar packages=( langchain-openai langchain-tests langchain-text-splitters + langchain-xai ) tags=$(git ls-remote --tags --refs "https://github.com/langchain-ai/langchain" | cut --delimiter=/ --field=3-) diff --git a/pkgs/development/python-modules/langchain-xai/default.nix b/pkgs/development/python-modules/langchain-xai/default.nix new file mode 100644 index 000000000000..08f9c99dc773 --- /dev/null +++ b/pkgs/development/python-modules/langchain-xai/default.nix @@ -0,0 +1,79 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + nix-update-script, + + # build-system + pdm-backend, + + # dependencies + aiohttp, + langchain-core, + langchain-openai, + requests, + + # tests + langchain-tests, + pytest-asyncio, + pytest-mock, + pytestCheckHook, +}: + +buildPythonPackage rec { + pname = "langchain-xai"; + version = "0.2.3"; + pyproject = true; + + src = fetchFromGitHub { + owner = "langchain-ai"; + repo = "langchain"; + tag = "langchain-xai==${version}"; + hash = "sha256-9pSwEHqh+WkHsjn7JNsyEy+U67ekTqAdHMAvAFanR8w="; + }; + + sourceRoot = "${src.name}/libs/partners/xai"; + + build-system = [ pdm-backend ]; + + dependencies = [ + aiohttp + langchain-core + langchain-openai + requests + ]; + + pythonRelaxDeps = [ + # Each component release requests the exact latest core. + # That prevents us from updating individual components. + "langchain-core" + ]; + + nativeCheckInputs = [ + langchain-tests + pytest-asyncio + pytest-mock + pytestCheckHook + ]; + + pytestFlagsArray = [ "tests/unit_tests" ]; + + pythonImportsCheck = [ "langchain_xai" ]; + + passthru.updateScript = nix-update-script { + extraArgs = [ + "--version-regex" + "langchain-xai==([0-9.]+)" + ]; + }; + + meta = { + changelog = "https://github.com/langchain-ai/langchain-xai/releases/tag/langchain-xai==${version}"; + description = "Build LangChain applications with X AI"; + homepage = "https://github.com/langchain-ai/langchain/tree/master/libs/partners/xai"; + 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..9a1323bc4760 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -7546,6 +7546,8 @@ self: super: with self; { langchain-text-splitters = callPackage ../development/python-modules/langchain-text-splitters { }; + langchain-xai = callPackage ../development/python-modules/langchain-xai { }; + langcodes = callPackage ../development/python-modules/langcodes { }; langdetect = callPackage ../development/python-modules/langdetect { };