| | 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() |
| |
|