mirror of
https://github.com/hwchase17/langchain.git
synced 2025-10-24 03:52:19 +00:00
Add a SQL agent for interacting with SQL Databases and JSON Agent for interacting with large JSON blobs (#1150)
This PR adds * `ZeroShotAgent.as_sql_agent`, which returns an agent for interacting with a sql database. This builds off of `SQLDatabaseChain`. The main advantages are 1) answering general questions about the db, 2) access to a tool for double checking queries, and 3) recovering from errors * `ZeroShotAgent.as_json_agent` which returns an agent for interacting with json blobs. * Several examples in notebooks --------- Co-authored-by: Harrison Chase <hw.chase.17@gmail.com>
This commit is contained in:
@@ -9,11 +9,13 @@ def test_python_repl() -> None:
|
||||
|
||||
# Run a simple initial command.
|
||||
repl.run("foo = 1")
|
||||
assert repl._locals["foo"] == 1
|
||||
assert repl.locals is not None
|
||||
assert repl.locals["foo"] == 1
|
||||
|
||||
# Now run a command that accesses `foo` to make sure it still has it.
|
||||
repl.run("bar = foo * 2")
|
||||
assert repl._locals["bar"] == 2
|
||||
assert repl.locals is not None
|
||||
assert repl.locals["bar"] == 2
|
||||
|
||||
|
||||
def test_python_repl_no_previous_variables() -> None:
|
||||
@@ -29,7 +31,8 @@ def test_python_repl_pass_in_locals() -> None:
|
||||
_locals = {"foo": 4}
|
||||
repl = PythonREPL(_locals=_locals)
|
||||
repl.run("bar = foo * 2")
|
||||
assert repl._locals["bar"] == 8
|
||||
assert repl.locals is not None
|
||||
assert repl.locals["bar"] == 8
|
||||
|
||||
|
||||
def test_functionality() -> None:
|
||||
@@ -38,3 +41,15 @@ def test_functionality() -> None:
|
||||
code = "print(1 + 1)"
|
||||
output = chain.run(code)
|
||||
assert output == "2\n"
|
||||
|
||||
|
||||
def test_function() -> None:
|
||||
"""Test correct functionality."""
|
||||
chain = PythonREPL()
|
||||
code = "def add(a, b): " " return a + b"
|
||||
output = chain.run(code)
|
||||
assert output == ""
|
||||
|
||||
code = "print(add(1, 2))"
|
||||
output = chain.run(code)
|
||||
assert output == "3\n"
|
||||
|
||||
Reference in New Issue
Block a user