Fix Python RePL Tool (#4137)

Filter out kwargs from inferred schema when determining if a tool is
single input.

Add a couple unit tests.

Move tool unit tests to the tools dir
This commit is contained in:
Zander Chase
2023-05-04 20:31:16 -07:00
committed by GitHub
parent cc068f1b77
commit 2f087d63af
6 changed files with 464 additions and 384 deletions

View File

@@ -0,0 +1,23 @@
"""Test Python REPL Tools."""
import sys
import pytest
from langchain.tools.python.tool import PythonAstREPLTool, PythonREPLTool
def test_python_repl_tool_single_input() -> None:
"""Test that the python REPL tool works with a single input."""
tool = PythonREPLTool()
assert tool.is_single_input
assert int(tool.run("print(1 + 1)").strip()) == 2
@pytest.mark.skipif(
sys.version_info < (3, 9), reason="Requires python version >= 3.9 to run."
)
def test_python_ast_repl_tool_single_input() -> None:
"""Test that the python REPL tool works with a single input."""
tool = PythonAstREPLTool()
assert tool.is_single_input
assert tool.run("1 + 1") == 2