Update app.py
Browse files
app.py
CHANGED
|
@@ -12,10 +12,9 @@ from langchain_openai import ChatOpenAI
|
|
| 12 |
from langchain_community.agent_toolkits import create_sql_agent
|
| 13 |
from huggingface_hub import InferenceClient
|
| 14 |
from langgraph.graph import StateGraph, END
|
| 15 |
-
from langgraph.prebuilt import
|
| 16 |
from langchain_core.tools import tool
|
| 17 |
from langgraph.checkpoint.sqlite import SqliteSaver
|
| 18 |
-
from langchain.agents import tool
|
| 19 |
import gradio as gr
|
| 20 |
|
| 21 |
load_dotenv()
|
|
@@ -178,28 +177,28 @@ def refine_answer(answer: str, question: str) -> str:
|
|
| 178 |
)
|
| 179 |
return response["choices"][0]["message"]["content"]
|
| 180 |
|
| 181 |
-
|
| 182 |
|
| 183 |
class GraphState(dict):
|
| 184 |
question: str
|
| 185 |
-
|
| 186 |
-
|
| 187 |
-
|
| 188 |
|
| 189 |
async def node_generate_sql(state: GraphState):
|
| 190 |
-
|
| 191 |
-
state["
|
| 192 |
-
return state
|
| 193 |
|
| 194 |
async def node_execute_sql(state: GraphState):
|
| 195 |
-
|
| 196 |
-
state["
|
| 197 |
-
return state
|
| 198 |
|
| 199 |
async def node_refine_if_enabled(state: GraphState):
|
| 200 |
-
|
| 201 |
-
state["
|
| 202 |
-
return state
|
| 203 |
|
| 204 |
builder = StateGraph(GraphState)
|
| 205 |
builder.add_node("generate_sql", node_generate_sql)
|
|
@@ -214,9 +213,9 @@ memory = SqliteSaver("graph_checkpoint")
|
|
| 214 |
graph = builder.compile(checkpointer=memory)
|
| 215 |
|
| 216 |
async def async_chatbot_response(question, model_name):
|
| 217 |
-
inputs = {"question": question
|
| 218 |
result = await graph.ainvoke(inputs)
|
| 219 |
-
return result["
|
| 220 |
|
| 221 |
def toggle_history():
|
| 222 |
global show_history_flag
|
|
|
|
| 12 |
from langchain_community.agent_toolkits import create_sql_agent
|
| 13 |
from huggingface_hub import InferenceClient
|
| 14 |
from langgraph.graph import StateGraph, END
|
| 15 |
+
from langgraph.prebuilt import ToolNode
|
| 16 |
from langchain_core.tools import tool
|
| 17 |
from langgraph.checkpoint.sqlite import SqliteSaver
|
|
|
|
| 18 |
import gradio as gr
|
| 19 |
|
| 20 |
load_dotenv()
|
|
|
|
| 177 |
)
|
| 178 |
return response["choices"][0]["message"]["content"]
|
| 179 |
|
| 180 |
+
tool_node = ToolNode([llama_to_sql, execute_sql_query, refine_answer])
|
| 181 |
|
| 182 |
class GraphState(dict):
|
| 183 |
question: str
|
| 184 |
+
tool: str
|
| 185 |
+
tool_input: dict
|
| 186 |
+
result: str
|
| 187 |
|
| 188 |
async def node_generate_sql(state: GraphState):
|
| 189 |
+
state["tool"] = "llama_to_sql"
|
| 190 |
+
state["tool_input"] = {"question": state["question"]}
|
| 191 |
+
return await tool_node.ainvoke(state)
|
| 192 |
|
| 193 |
async def node_execute_sql(state: GraphState):
|
| 194 |
+
state["tool"] = "execute_sql_query"
|
| 195 |
+
state["tool_input"] = {"sql_query": state["result"]}
|
| 196 |
+
return await tool_node.ainvoke(state)
|
| 197 |
|
| 198 |
async def node_refine_if_enabled(state: GraphState):
|
| 199 |
+
state["tool"] = "refine_answer"
|
| 200 |
+
state["tool_input"] = {"answer": state["result"], "question": state["question"]}
|
| 201 |
+
return await tool_node.ainvoke(state)
|
| 202 |
|
| 203 |
builder = StateGraph(GraphState)
|
| 204 |
builder.add_node("generate_sql", node_generate_sql)
|
|
|
|
| 213 |
graph = builder.compile(checkpointer=memory)
|
| 214 |
|
| 215 |
async def async_chatbot_response(question, model_name):
|
| 216 |
+
inputs = {"question": question}
|
| 217 |
result = await graph.ainvoke(inputs)
|
| 218 |
+
return result["result"]
|
| 219 |
|
| 220 |
def toggle_history():
|
| 221 |
global show_history_flag
|