From 65c95f9fb2b86cf3281f2f3939b37e71f048f741 Mon Sep 17 00:00:00 2001 From: Lior Neudorfer Date: Mon, 8 May 2023 07:11:51 +0300 Subject: [PATCH] Better error when running chain without any args (#4294) Today, when running a chain without any arguments, the raised ValueError incorrectly specifies that user provided "both positional arguments and keyword arguments". This PR adds a more accurate error in that case. --- langchain/chains/base.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/langchain/chains/base.py b/langchain/chains/base.py index b4043dfe..a457934f 100644 --- a/langchain/chains/base.py +++ b/langchain/chains/base.py @@ -238,6 +238,12 @@ class Chain(BaseModel, ABC): if kwargs and not args: return self(kwargs, callbacks=callbacks)[self.output_keys[0]] + if not kwargs and not args: + raise ValueError( + "`run` supported with either positional arguments or keyword arguments," + " but none were provided." + ) + raise ValueError( f"`run` supported with either positional arguments or keyword arguments" f" but not both. Got args: {args} and kwargs: {kwargs}."