2

I tried to ask it a simple task which involves joining two different tables and the agents seems to be including extra an ' which leads to this error (this error does not appear when the prompt is simple and just asks about one table) has anyone else encountered this problem ??


Thought: The table names are correct. I should query the schema of these tables.
Action: schema_sql_db
Action Input: 'ods_crs_reservation, ods_crs_reservation_room_history'
Observation: Error: table_names {"ods_crs_reservation_room_history'", "'ods_crs_reservation"} not found in database
Thought: I must have made a typo. I should double check the table names.
Action: list_tables_sql_db
Action Input: ""

2 Answers 2

2

I got the same error and solved it by not using the toolkit but loading the tools separately with a slight modification on the schema one

from langchain.tools.sql_database.tool import (
InfoSQLDatabaseTool,
ListSQLDatabaseTool,
QueryCheckerTool,
QuerySQLDataBaseTool,
)

# assign your llm and db

info_sql_database_tool_description = """Input to this tool is a comma separated list of tables, output is the schema and sample rows for those tables.Be sure that the tables actually exist by calling list_tables_sql_db first! Example Input: table1, table2, table3"""

tools = [
QuerySQLDataBaseTool(db=db),
InfoSQLDatabaseTool(db=db, description=info_sql_database_tool_description),
ListSQLDatabaseTool(db=db),
QueryCheckerTool(db=db, llm=llm),
]
Sign up to request clarification or add additional context in comments.

Comments

0

The following code works for langchain to 0.2.12:

from langchain import hub
from langchain_community.agent_toolkits import create_sql_agent, SQLDatabaseToolkit
from langchain_community.llms import HuggingFaceTextGenInference
from langchain_community.utilities import SQLDatabase

db = SQLDatabase.from_uri("sqlite:///static/Chinook.db")
ENDPOINT_URL = "YOUR TGI endpoint"

llm = HuggingFaceTextGenInference(
    inference_server_url=ENDPOINT_URL,
    max_new_tokens=512,
)

prompt_template = hub.pull("langchain-ai/sql-agent-system-prompt")
system_message = prompt_template.format(dialect="SQLite", top_k=5)

toolkit = SQLDatabaseToolkit(db=db, llm=llm)

agent_executor = create_sql_agent(
    llm, toolkit, state_modifier=system_message, verbose=True,
)

print(agent_executor.invoke({"input": "how many artists are there?"}))

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.