Skip to content

Commit 364b771

Browse files
authored
sql return direct (#864)
1 parent 483441d commit 364b771

File tree

1 file changed

+14
-5
lines changed
  • langchain/chains/sql_database

1 file changed

+14
-5
lines changed

langchain/chains/sql_database/base.py

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@ class SQLDatabaseChain(Chain, BaseModel):
3535
input_key: str = "query" #: :meta private:
3636
output_key: str = "result" #: :meta private:
3737
return_intermediate_steps: bool = False
38+
"""Whether or not to return the intermediate steps along with the final answer."""
39+
return_direct: bool = False
40+
"""Whether or not to return the result of querying the SQL table directly."""
3841

3942
class Config:
4043
"""Configuration for this pydantic object."""
@@ -83,11 +86,17 @@ def _call(self, inputs: Dict[str, Any]) -> Dict[str, Any]:
8386
intermediate_steps.append(result)
8487
self.callback_manager.on_text("\nSQLResult: ", verbose=self.verbose)
8588
self.callback_manager.on_text(result, color="yellow", verbose=self.verbose)
86-
self.callback_manager.on_text("\nAnswer:", verbose=self.verbose)
87-
input_text += f"{sql_cmd}\nSQLResult: {result}\nAnswer:"
88-
llm_inputs["input"] = input_text
89-
final_result = llm_chain.predict(**llm_inputs)
90-
self.callback_manager.on_text(final_result, color="green", verbose=self.verbose)
89+
# If return direct, we just set the final result equal to the sql query
90+
if self.return_direct:
91+
final_result = result
92+
else:
93+
self.callback_manager.on_text("\nAnswer:", verbose=self.verbose)
94+
input_text += f"{sql_cmd}\nSQLResult: {result}\nAnswer:"
95+
llm_inputs["input"] = input_text
96+
final_result = llm_chain.predict(**llm_inputs)
97+
self.callback_manager.on_text(
98+
final_result, color="green", verbose=self.verbose
99+
)
91100
chain_result: Dict[str, Any] = {self.output_key: final_result}
92101
if self.return_intermediate_steps:
93102
chain_result["intermediate_steps"] = intermediate_steps

0 commit comments

Comments
 (0)