core[patch]: Add kwargs to Runnable (#27008)

Fixes #26685

---------

Co-authored-by: Tibor Reiss <tibor.reiss@gmail.com>
This commit is contained in:
Eugene Yurtsev
2024-09-30 16:45:29 -04:00
committed by GitHub
parent 2a6abd3f0a
commit 7fde2791dc
12 changed files with 49 additions and 19 deletions

View File

@@ -723,7 +723,9 @@ class Runnable(Generic[Input, Output], ABC):
""" --- Public API --- """
@abstractmethod
def invoke(self, input: Input, config: Optional[RunnableConfig] = None) -> Output:
def invoke(
self, input: Input, config: Optional[RunnableConfig] = None, **kwargs: Any
) -> Output:
"""Transform a single input into an output. Override to implement.
Args:
@@ -3669,7 +3671,7 @@ class RunnableParallel(RunnableSerializable[Input, dict[str, Any]]):
return "{\n " + map_for_repr + "\n}"
def invoke(
self, input: Input, config: Optional[RunnableConfig] = None
self, input: Input, config: Optional[RunnableConfig] = None, **kwargs: Any
) -> dict[str, Any]:
from langchain_core.callbacks.manager import CallbackManager

View File

@@ -96,7 +96,7 @@ class RouterRunnable(RunnableSerializable[RouterInput, Output]):
return ["langchain", "schema", "runnable"]
def invoke(
self, input: RouterInput, config: Optional[RunnableConfig] = None
self, input: RouterInput, config: Optional[RunnableConfig] = None, **kwargs: Any
) -> Output:
key = input["key"]
actual_input = input["input"]