From de4a5ed418923fa8e7dc0c7d6cbfde39970c6830 Mon Sep 17 00:00:00 2001 From: Nuno Campos Date: Tue, 14 Nov 2023 11:36:30 +0000 Subject: [PATCH] Update langchain, implement config_specs --- permchain/pregel/__init__.py | 10 ++++++++++ permchain/pregel/read.py | 10 +++++++--- poetry.lock | 16 ++++++++-------- pyproject.toml | 2 +- 4 files changed, 26 insertions(+), 12 deletions(-) diff --git a/permchain/pregel/__init__.py b/permchain/pregel/__init__.py index 374d390c1..3148e0667 100644 --- a/permchain/pregel/__init__.py +++ b/permchain/pregel/__init__.py @@ -32,6 +32,10 @@ from langchain.schema.runnable.config import ( get_executor_for_config, patch_config, ) +from langchain.schema.runnable.utils import ( + ConfigurableFieldSpec, + get_unique_config_specs, +) from permchain.channels.base import ( AsyncChannelsManager, @@ -121,6 +125,12 @@ class Pregel(RunnableSerializable[dict[str, Any] | Any, dict[str, Any] | Any]): ) return values + @property + def config_specs(self) -> Sequence[ConfigurableFieldSpec]: + return get_unique_config_specs( + spec for chain in self.chains.values() for spec in chain.config_specs + ) + @property def InputType(self) -> Any: if isinstance(self.input, str): diff --git a/permchain/pregel/read.py b/permchain/pregel/read.py index 88c5b4522..4793dee67 100644 --- a/permchain/pregel/read.py +++ b/permchain/pregel/read.py @@ -5,12 +5,16 @@ from typing import Any, Callable, Mapping, Optional, Sequence from langchain.pydantic_v1 import Field from langchain.schema.runnable import ( Runnable, - RunnableBinding, RunnableConfig, RunnableLambda, RunnablePassthrough, ) -from langchain.schema.runnable.base import Other, RunnableEach, coerce_to_runnable +from langchain.schema.runnable.base import ( + Other, + RunnableBindingBase, + RunnableEach, + coerce_to_runnable, +) from langchain.schema.runnable.utils import ConfigurableFieldSpec from permchain.channels.base import BaseChannel @@ -60,7 +64,7 @@ class ChannelRead(RunnableLambda): default_bound = RunnablePassthrough() -class ChannelInvoke(RunnableBinding): +class ChannelInvoke(RunnableBindingBase): channels: Mapping[None, str] | Mapping[str, str] bound: Runnable[Any, Any] = Field(default=default_bound) diff --git a/poetry.lock b/poetry.lock index 93fbf093e..d4bca125c 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1471,13 +1471,13 @@ files = [ [[package]] name = "langchain" -version = "0.0.330" +version = "0.0.335" description = "Building applications with LLMs through composability" optional = false python-versions = ">=3.8.1,<4.0" files = [ - {file = "langchain-0.0.330-py3-none-any.whl", hash = "sha256:ed557f4d680e02d9a05b175cae1ba146b7239d4d429d1d5271d4578b4956dbd6"}, - {file = "langchain-0.0.330.tar.gz", hash = "sha256:5bed52769b63d76eb63589193e2efb66f5c7c429726af608e658f635335bd46a"}, + {file = "langchain-0.0.335-py3-none-any.whl", hash = "sha256:f74c98366070a46953c071c69f6c01671a9437569c08406cace256ccaabdfcaf"}, + {file = "langchain-0.0.335.tar.gz", hash = "sha256:93136fe6cc9ac06a80ccf7cf581e58af5cfcc31fef1083b30165df9a9bc53f5d"}, ] [package.dependencies] @@ -1486,7 +1486,7 @@ anyio = "<4.0" async-timeout = {version = ">=4.0.0,<5.0.0", markers = "python_version < \"3.11\""} dataclasses-json = ">=0.5.7,<0.7" jsonpatch = ">=1.33,<2.0" -langsmith = ">=0.0.52,<0.1.0" +langsmith = ">=0.0.63,<0.1.0" numpy = ">=1,<2" pydantic = ">=1,<3" PyYAML = ">=5.3" @@ -1511,13 +1511,13 @@ text-helpers = ["chardet (>=5.1.0,<6.0.0)"] [[package]] name = "langsmith" -version = "0.0.57" +version = "0.0.64" description = "Client library to connect to the LangSmith LLM Tracing and Evaluation Platform." optional = false python-versions = ">=3.8.1,<4.0" files = [ - {file = "langsmith-0.0.57-py3-none-any.whl", hash = "sha256:d9d466cc45ce5224096ffb820d019b6f83678fc1f1021076ed75728aba60ec2b"}, - {file = "langsmith-0.0.57.tar.gz", hash = "sha256:34929afd84cbfd46a8469229e3befc14c7e89186a0bee8ce9d084c7b8b271005"}, + {file = "langsmith-0.0.64-py3-none-any.whl", hash = "sha256:461acdcd8332d1325c16dc57e8a2d5ec9d1578490a4eaabe14db74db74ceaf21"}, + {file = "langsmith-0.0.64.tar.gz", hash = "sha256:e78c02501c2cff24fff7bd2d28ff3765b21675c7f0fcf6a09932bc218603c36e"}, ] [package.dependencies] @@ -3481,4 +3481,4 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "p [metadata] lock-version = "2.0" python-versions = ">=3.8.1,<4.0" -content-hash = "ce9a7fe6e1972d14c6fd8aec807d4146098f6e4bc0efcbb0e8f10d922ff4901f" +content-hash = "39ce01bbdc6757d98568030111d92e4c163667ebe674d8312f9f3b2c8b20f98a" diff --git a/pyproject.toml b/pyproject.toml index 0e58b144b..fbf453cd7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,7 +9,7 @@ repository = "https://www.github.com/langchain-ai/permchain" [tool.poetry.dependencies] python = ">=3.8.1,<4.0" -langchain = ">=0.0.313" +langchain = "^0.0.335" [tool.poetry.group.test.dependencies]