Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -51,16 +51,23 @@ toolkit = SQLDatabaseToolkit(db=db, llm=llm)
|
|
51 |
tools = toolkit.get_tools()
|
52 |
|
53 |
|
54 |
-
def create_agent_app(
|
55 |
-
#
|
|
|
|
|
56 |
from langchain_community.utilities import SQLDatabase
|
57 |
db_instance = SQLDatabase.from_uri(db_uri)
|
58 |
|
59 |
-
# Create SQL toolkit and get the tools
|
60 |
from langchain_community.agent_toolkits import SQLDatabaseToolkit
|
61 |
toolkit_instance = SQLDatabaseToolkit(db=db_instance, llm=llm)
|
62 |
tools_instance = toolkit_instance.get_tools()
|
63 |
|
|
|
|
|
|
|
|
|
|
|
64 |
# Define a custom query tool for executing SQL queries
|
65 |
|
66 |
# Define a custom query tool for executing SQL queries
|
@@ -244,10 +251,9 @@ def create_app():
|
|
244 |
return "No file uploaded", 400
|
245 |
file_path = os.path.join(UPLOAD_FOLDER, file.filename)
|
246 |
file.save(file_path)
|
247 |
-
#
|
248 |
-
new_db_uri = f"sqlite:///{file_path}"
|
249 |
global agent_app
|
250 |
-
agent_app = create_agent_app(
|
251 |
socketio.emit("log", {"message": f"[INFO]: Database file '{file.filename}' uploaded and loaded."})
|
252 |
return redirect(url_for("index"))
|
253 |
return render_template("upload.html")
|
|
|
51 |
tools = toolkit.get_tools()
|
52 |
|
53 |
|
54 |
+
def create_agent_app(db_path: str):
|
55 |
+
# Construct the SQLite URI from the given file path.
|
56 |
+
db_uri = f"sqlite:///{db_path}"
|
57 |
+
# Create new SQLDatabase connection using the constructed URI.
|
58 |
from langchain_community.utilities import SQLDatabase
|
59 |
db_instance = SQLDatabase.from_uri(db_uri)
|
60 |
|
61 |
+
# Create SQL toolkit and get the tools.
|
62 |
from langchain_community.agent_toolkits import SQLDatabaseToolkit
|
63 |
toolkit_instance = SQLDatabaseToolkit(db=db_instance, llm=llm)
|
64 |
tools_instance = toolkit_instance.get_tools()
|
65 |
|
66 |
+
# ... (rest of the logic remains unchanged)
|
67 |
+
# [Define custom query tool, prompt templates, workflow nodes, etc.]
|
68 |
+
|
69 |
+
# Compile and return the agent application workflow.
|
70 |
+
return workflow.compile()
|
71 |
# Define a custom query tool for executing SQL queries
|
72 |
|
73 |
# Define a custom query tool for executing SQL queries
|
|
|
251 |
return "No file uploaded", 400
|
252 |
file_path = os.path.join(UPLOAD_FOLDER, file.filename)
|
253 |
file.save(file_path)
|
254 |
+
# Reinitialize the agent_app using the uploaded file's path.
|
|
|
255 |
global agent_app
|
256 |
+
agent_app = create_agent_app(file_path)
|
257 |
socketio.emit("log", {"message": f"[INFO]: Database file '{file.filename}' uploaded and loaded."})
|
258 |
return redirect(url_for("index"))
|
259 |
return render_template("upload.html")
|