mirror of
https://github.com/hwchase17/langchain.git
synced 2025-07-04 04:07:54 +00:00
Harrison/multiline commands (#2280)
Co-authored-by: Marc Päpper <mpaepper@users.noreply.github.com>
This commit is contained in:
parent
a9dddd8a32
commit
acfda4d1d8
@ -25,9 +25,12 @@ class PythonREPLTool(BaseTool):
|
|||||||
"with `print(...)`."
|
"with `print(...)`."
|
||||||
)
|
)
|
||||||
python_repl: PythonREPL = Field(default_factory=_get_default_python_repl)
|
python_repl: PythonREPL = Field(default_factory=_get_default_python_repl)
|
||||||
|
sanitize_input: bool = True
|
||||||
|
|
||||||
def _run(self, query: str) -> str:
|
def _run(self, query: str) -> str:
|
||||||
"""Use the tool."""
|
"""Use the tool."""
|
||||||
|
if self.sanitize_input:
|
||||||
|
query = query.strip().strip("```")
|
||||||
return self.python_repl.run(query)
|
return self.python_repl.run(query)
|
||||||
|
|
||||||
async def _arun(self, query: str) -> str:
|
async def _arun(self, query: str) -> str:
|
||||||
|
@ -1,6 +1,15 @@
|
|||||||
"""Test functionality of Python REPL."""
|
"""Test functionality of Python REPL."""
|
||||||
|
|
||||||
from langchain.python import PythonREPL
|
from langchain.python import PythonREPL
|
||||||
|
from langchain.tools.python.tool import PythonREPLTool
|
||||||
|
|
||||||
|
_SAMPLE_CODE = """
|
||||||
|
```
|
||||||
|
def multiply():
|
||||||
|
print(5*6)
|
||||||
|
multiply()
|
||||||
|
```
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
def test_python_repl() -> None:
|
def test_python_repl() -> None:
|
||||||
@ -43,6 +52,14 @@ def test_functionality() -> None:
|
|||||||
assert output == "2\n"
|
assert output == "2\n"
|
||||||
|
|
||||||
|
|
||||||
|
def test_functionality_multiline() -> None:
|
||||||
|
"""Test correct functionality for ChatGPT multiline commands."""
|
||||||
|
chain = PythonREPL()
|
||||||
|
tool = PythonREPLTool(python_repl=chain)
|
||||||
|
output = tool.run(_SAMPLE_CODE)
|
||||||
|
assert output == "30\n"
|
||||||
|
|
||||||
|
|
||||||
def test_function() -> None:
|
def test_function() -> None:
|
||||||
"""Test correct functionality."""
|
"""Test correct functionality."""
|
||||||
chain = PythonREPL()
|
chain = PythonREPL()
|
||||||
|
Loading…
Reference in New Issue
Block a user