| import gradio as gr |
| import pandas as pd |
| from agents.brain import AutoWarehouseAgent |
|
|
| agent = AutoWarehouseAgent() |
|
|
|
|
| def df_from_input(df): |
| return pd.DataFrame(df) if df else pd.DataFrame() |
|
|
|
|
| def run_agent(message, slotting_df, picking_df): |
| print("π₯ INPUT MESSAGE:", message) |
| print("π SLOT DATA:", slotting_df) |
| print("π PICKING DATA:", picking_df) |
|
|
| try: |
| raw = agent.run(message, slotting_df, picking_df) |
| print("β
RAW RESULT FROM AGENT:", raw) |
|
|
| |
| |
| |
| if isinstance(raw, str): |
| |
| result = { |
| "report": raw, |
| "route_image": None, |
| "slotting_table": pd.DataFrame(), |
| } |
|
|
| elif isinstance(raw, dict): |
| |
| result = { |
| "report": raw.get("report", "No report generated."), |
| "route_image": raw.get("route_image", None), |
| "slotting_table": raw.get("slotting_table", pd.DataFrame()), |
| } |
|
|
| else: |
| |
| result = { |
| "report": "β οΈ Invalid agent output format.", |
| "route_image": None, |
| "slotting_table": pd.DataFrame(), |
| } |
|
|
| |
| return ( |
| result["report"], |
| result["route_image"], |
| result["slotting_table"], |
| ) |
|
|
| except Exception as e: |
| import traceback |
| print("β ERROR OCCURRED:") |
| traceback.print_exc() |
|
|
| return ( |
| f"### β Error\n{str(e)}", |
| None, |
| pd.DataFrame(), |
| ) |
|
|
|
|
| def build_ui(): |
| with gr.Blocks() as demo: |
|
|
| gr.Markdown( |
| "<h1 style='color:#FF6A00;'>Procelevate Autonomous Warehouse Operator</h1>" |
| ) |
|
|
| query = gr.Textbox(label="Enter your request") |
|
|
| gr.Markdown("### Slotting Data") |
| slot_df = gr.Dataframe( |
| headers=["SKU", "Velocity", "Frequency"], |
| value=[ |
| ["A123", "Fast", 120], |
| ["B555", "Medium", 60], |
| ["C888", "Slow", 8], |
| ], |
| ) |
|
|
| gr.Markdown("### Picking Data") |
| pick_df = gr.Dataframe( |
| headers=["Aisle", "Rack"], |
| value=[[5, 14], [3, 10], [12, 7]], |
| ) |
|
|
| btn = gr.Button("Run Agent", variant="primary") |
|
|
| out_report = gr.Markdown() |
| out_route = gr.Image() |
| out_slot = gr.Dataframe() |
|
|
| btn.click( |
| run_agent, |
| inputs=[query, slot_df, pick_df], |
| outputs=[out_report, out_route, out_slot], |
| ) |
|
|
| return demo |
|
|
|
|
| demo = build_ui() |
| demo.launch() |
|
|