vindruid
commited on
clean code
Browse files
app.py
CHANGED
|
@@ -263,7 +263,7 @@ No need to say if the chart cannot be displayed, because it already handled in t
|
|
| 263 |
You already have access to a DataFrame called `df`
|
| 264 |
""")
|
| 265 |
|
| 266 |
-
|
| 267 |
def assistant(state: AgentState) -> AgentState:
|
| 268 |
|
| 269 |
schema_output = describe_schema.invoke(df)
|
|
@@ -438,38 +438,7 @@ def build_graph():
|
|
| 438 |
react_graph = build_graph()
|
| 439 |
config = {"configurable": {"thread_id": 123, "session": 100}}
|
| 440 |
|
| 441 |
-
# ---
|
| 442 |
-
def respond(message, chat_history):
|
| 443 |
-
chat_history = []
|
| 444 |
-
res = react_graph.invoke(
|
| 445 |
-
{"messages": [HumanMessage(content=message)]}
|
| 446 |
-
, config=config)
|
| 447 |
-
|
| 448 |
-
for msg in res["messages"]:
|
| 449 |
-
msg.pretty_print()
|
| 450 |
-
if isinstance(msg, HumanMessage):
|
| 451 |
-
chat_history.append({"role": "user", "content": msg.content})
|
| 452 |
-
|
| 453 |
-
if isinstance(msg, AIMessage):
|
| 454 |
-
ai_response = msg.content
|
| 455 |
-
chat_history.append({"role": "assistant", "content": ai_response})
|
| 456 |
-
|
| 457 |
-
if isinstance(msg, ToolMessage):
|
| 458 |
-
if msg.name == "generate_plot_code":
|
| 459 |
-
plot_result = generate_plot_from_code(msg.content)
|
| 460 |
-
chat_history.append({"role": "assistant", "content": gr.Plot(plot_result)})
|
| 461 |
-
chat_history.append({"role": "assistant", "content": res["plots"][-1].get("interpretation", " ")})
|
| 462 |
-
|
| 463 |
-
if msg.name == "enhance_plot_code":
|
| 464 |
-
plot_result = generate_plot_from_code(msg.content)
|
| 465 |
-
chat_history.append({"role": "assistant", "content": gr.Plot(plot_result)})
|
| 466 |
-
|
| 467 |
-
time.sleep(1)
|
| 468 |
-
return "", chat_history
|
| 469 |
-
|
| 470 |
-
|
| 471 |
-
my_theme = gr.Theme.from_hub("NoCrypt/miku")
|
| 472 |
-
|
| 473 |
def to_snake_case(name):
|
| 474 |
return name.lower().replace(' ', '_').replace('-', '_')
|
| 475 |
|
|
@@ -576,7 +545,6 @@ def refresh_graph():
|
|
| 576 |
global config
|
| 577 |
config = {"configurable": {"thread_id": str(uuid.uuid4()), "session": str(uuid.uuid4())}}
|
| 578 |
|
| 579 |
-
# --- Gradio UI ---
|
| 580 |
def respond(message, chat_history):
|
| 581 |
chat_history = []
|
| 582 |
res = react_graph.invoke(
|
|
@@ -604,7 +572,8 @@ def respond(message, chat_history):
|
|
| 604 |
time.sleep(1)
|
| 605 |
return "", chat_history
|
| 606 |
|
| 607 |
-
#
|
|
|
|
| 608 |
with gr.Blocks(theme=my_theme) as demo:
|
| 609 |
demo.load(refresh_graph, inputs=None, outputs=None)
|
| 610 |
|
|
|
|
| 263 |
You already have access to a DataFrame called `df`
|
| 264 |
""")
|
| 265 |
|
| 266 |
+
#--- Assistant Functions ---
|
| 267 |
def assistant(state: AgentState) -> AgentState:
|
| 268 |
|
| 269 |
schema_output = describe_schema.invoke(df)
|
|
|
|
| 438 |
react_graph = build_graph()
|
| 439 |
config = {"configurable": {"thread_id": 123, "session": 100}}
|
| 440 |
|
| 441 |
+
# --- Data Exploration Functions ---
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 442 |
def to_snake_case(name):
|
| 443 |
return name.lower().replace(' ', '_').replace('-', '_')
|
| 444 |
|
|
|
|
| 545 |
global config
|
| 546 |
config = {"configurable": {"thread_id": str(uuid.uuid4()), "session": str(uuid.uuid4())}}
|
| 547 |
|
|
|
|
| 548 |
def respond(message, chat_history):
|
| 549 |
chat_history = []
|
| 550 |
res = react_graph.invoke(
|
|
|
|
| 572 |
time.sleep(1)
|
| 573 |
return "", chat_history
|
| 574 |
|
| 575 |
+
# --- Gradio UI ---
|
| 576 |
+
my_theme = gr.Theme.from_hub("NoCrypt/miku")
|
| 577 |
with gr.Blocks(theme=my_theme) as demo:
|
| 578 |
demo.load(refresh_graph, inputs=None, outputs=None)
|
| 579 |
|