File size: 3,459 Bytes
92ef79b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#!/usr/bin/env python3
"""
Demo script showing DAG visualization integration with QA_LLM_Module
"""

import json
from dag_visualizer import DAGVisualizer

def create_demo_task_data():
    """Create sample task data for demonstration"""
    return {
        "tasks": [
            {
                "task": "excavate_soil_from_pile",
                "instruction_function": {
                    "name": "excavate_soil_from_pile",
                    "robot_ids": ["robot_excavator_01"],
                    "dependencies": [],
                    "object_keywords": ["soil_pile"]
                }
            },
            {
                "task": "transport_soil_to_pit",
                "instruction_function": {
                    "name": "transport_soil_to_pit",
                    "robot_ids": ["robot_dump_truck_01"],
                    "dependencies": ["excavate_soil_from_pile"],
                    "object_keywords": ["pit"]
                }
            },
            {
                "task": "avoid_puddle_areas",
                "instruction_function": {
                    "name": "avoid_areas_for_all_robots",
                    "robot_ids": ["robot_excavator_01", "robot_dump_truck_01"],
                    "dependencies": [],
                    "object_keywords": ["puddle1", "puddle2"]
                }
            },
            {
                "task": "coordinate_dump_operation",
                "instruction_function": {
                    "name": "coordinate_dump_operation",
                    "robot_ids": ["robot_dump_truck_01", "robot_excavator_01"],
                    "dependencies": ["transport_soil_to_pit", "avoid_puddle_areas"],
                    "object_keywords": ["pit", "dumping_zone"]
                }
            }
        ]
    }

def main():
    print("🎯 DAG Visualization Demo for QA_LLM_Module")
    print("=" * 50)
    
    # Create sample task data
    task_data = create_demo_task_data()
    print("Sample task data:")
    print(json.dumps(task_data, indent=2))
    print()
    
    # Initialize visualizer
    visualizer = DAGVisualizer()
    
    # Create detailed visualization
    print("Creating detailed DAG visualization...")
    detailed_image = visualizer.create_dag_visualization(
        task_data, 
        title="DART-LLM: Robot Task Dependency Graph"
    )
    
    if detailed_image:
        print(f"βœ… Detailed visualization saved: {detailed_image}")
    else:
        print("❌ Failed to create detailed visualization")
    
    # Create simplified visualization
    print("\nCreating simplified DAG visualization...")
    simple_image = visualizer.create_simplified_dag_visualization(
        task_data,
        title="DART-LLM: Task Dependencies"
    )
    
    if simple_image:
        print(f"βœ… Simplified visualization saved: {simple_image}")
    else:
        print("❌ Failed to create simplified visualization")
    
    print("\n" + "=" * 50)
    print("πŸš€ Integration Instructions:")
    print("1. Install requirements: pip install -r requirements.txt")
    print("2. Run the main application: python3 main.py")
    print("3. Enter a query that generates task JSON")
    print("4. The DAG visualization will appear automatically!")
    print("\nπŸ“ Example queries:")
    print("- 'Move half of the soil from the soil pile to the pit.'")
    print("- 'Excavate material and transport it while avoiding obstacles.'")

if __name__ == "__main__":
    main()