From 9cd131a1786592231e89e6ec900dcfefb16de799 Mon Sep 17 00:00:00 2001 From: Nuno Campos Date: Sat, 16 Sep 2023 21:19:36 +0100 Subject: [PATCH] Support kwargs in RunnableWithFallbacks (#10682) --- libs/langchain/langchain/schema/runnable/base.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/libs/langchain/langchain/schema/runnable/base.py b/libs/langchain/langchain/schema/runnable/base.py index 7771ed02ba..57a993bdaf 100644 --- a/libs/langchain/langchain/schema/runnable/base.py +++ b/libs/langchain/langchain/schema/runnable/base.py @@ -683,7 +683,9 @@ class RunnableWithFallbacks(Serializable, Runnable[Input, Output]): yield self.runnable yield from self.fallbacks - def invoke(self, input: Input, config: Optional[RunnableConfig] = None) -> Output: + def invoke( + self, input: Input, config: Optional[RunnableConfig] = None, **kwargs: Any + ) -> Output: # setup callbacks config = ensure_config(config) callback_manager = get_callback_manager_for_config(config) @@ -697,6 +699,7 @@ class RunnableWithFallbacks(Serializable, Runnable[Input, Output]): output = runnable.invoke( input, patch_config(config, callbacks=run_manager.get_child()), + **kwargs, ) except self.exceptions_to_handle as e: if first_error is None: @@ -732,6 +735,7 @@ class RunnableWithFallbacks(Serializable, Runnable[Input, Output]): output = await runnable.ainvoke( input, patch_config(config, callbacks=run_manager.get_child()), + **kwargs, ) except self.exceptions_to_handle as e: if first_error is None: @@ -797,6 +801,8 @@ class RunnableWithFallbacks(Serializable, Runnable[Input, Output]): patch_config(config, callbacks=rm.get_child()) for rm, config in zip(run_managers, configs) ], + return_exceptions=return_exceptions, + **kwargs, ) except self.exceptions_to_handle as e: if first_error is None: @@ -867,6 +873,8 @@ class RunnableWithFallbacks(Serializable, Runnable[Input, Output]): patch_config(config, callbacks=rm.get_child()) for rm, config in zip(run_managers, configs) ], + return_exceptions=return_exceptions, + **kwargs, ) except self.exceptions_to_handle as e: if first_error is None: