import asyncio from app.agent.data_analysis import DataAnalysis from app.logger import logger prefix = "Help me generate charts and save them locally, specifically:" tasks = [ { "prompt": "Help me show the sales of different products in different regions", "data": """Product Name,Region,Sales Coke,South,2350 Coke,East,1027 Coke,West,1027 Coke,North,1027 Sprite,South,215 Sprite,East,654 Sprite,West,159 Sprite,North,28 Fanta,South,345 Fanta,East,654 Fanta,West,2100 Fanta,North,1679 Xingmu,South,1476 Xingmu,East,830 Xingmu,West,532 Xingmu,North,498 """, }, { "prompt": "Show market share of each brand", "data": """Brand Name,Market Share,Average Price,Net Profit Apple,0.5,7068,314531 Samsung,0.2,6059,362345 Vivo,0.05,3406,234512 Nokia,0.01,1064,-1345 Xiaomi,0.1,4087,131345""", }, { "prompt": "Please help me show the sales trend of each product", "data": """Date,Type,Value 2023-01-01,Product A,52.9 2023-01-01,Product B,63.6 2023-01-01,Product C,11.2 2023-01-02,Product A,45.7 2023-01-02,Product B,89.1 2023-01-02,Product C,21.4 2023-01-03,Product A,67.2 2023-01-03,Product B,82.4 2023-01-03,Product C,31.7 2023-01-04,Product A,80.7 2023-01-04,Product B,55.1 2023-01-04,Product C,21.1 2023-01-05,Product A,65.6 2023-01-05,Product B,78 2023-01-05,Product C,31.3 2023-01-06,Product A,75.6 2023-01-06,Product B,89.1 2023-01-06,Product C,63.5 2023-01-07,Product A,67.3 2023-01-07,Product B,77.2 2023-01-07,Product C,43.7 2023-01-08,Product A,96.1 2023-01-08,Product B,97.6 2023-01-08,Product C,59.9 2023-01-09,Product A,96.1 2023-01-09,Product B,100.6 2023-01-09,Product C,66.8 2023-01-10,Product A,101.6 2023-01-10,Product B,108.3 2023-01-10,Product C,56.9""", }, { "prompt": "Show the popularity of search keywords", "data": """Keyword,Popularity Hot Word,1000 Zao Le Wo Men,800 Rao Jian Huo,400 My Wish is World Peace,400 Xiu Xiu Xiu,400 Shenzhou 11,400 Hundred Birds Facing the Wind,400 China Women's Volleyball Team,400 My Guan Na,400 Leg Dong,400 Hot Pot Hero,400 Baby's Heart is Bitter,400 Olympics,400 Awesome My Brother,400 Poetry and Distance,400 Song Joong-ki,400 PPAP,400 Blue Thin Mushroom,400 Rain Dew Evenly,400 Friendship's Little Boat Says It Flips,400 Beijing Slump,400 Dedication,200 Apple,200 Dog Belt,200 Old Driver,200 Melon-Eating Crowd,200 Zootopia,200 City Will Play,200 Routine,200 Water Reverse,200 Why Don't You Go to Heaven,200 Snake Spirit Man,200 Why Don't You Go to Heaven,200 Samsung Explosion Gate,200 Little Li Oscar,200 Ugly People Need to Read More,200 Boyfriend Power,200 A Face of Confusion,200 Descendants of the Sun,200""", }, { "prompt": "Help me compare the performance of different electric vehicle brands using a scatter plot", "data": """Range,Charging Time,Brand Name,Average Price 2904,46,Brand1,2350 1231,146,Brand2,1027 5675,324,Brand3,1242 543,57,Brand4,6754 326,234,Brand5,215 1124,67,Brand6,654 3426,81,Brand7,159 2134,24,Brand8,28 1234,52,Brand9,345 2345,27,Brand10,654 526,145,Brand11,2100 234,93,Brand12,1679 567,94,Brand13,1476 789,45,Brand14,830 469,75,Brand15,532 5689,54,Brand16,498 """, }, { "prompt": "Show conversion rates for each process", "data": """Process,Conversion Rate,Month Step1,100,1 Step2,80,1 Step3,60,1 Step4,40,1""", }, { "prompt": "Show the difference in breakfast consumption between men and women", "data": """Day,Men-Breakfast,Women-Breakfast Monday,15,22 Tuesday,12,10 Wednesday,15,20 Thursday,10,12 Friday,13,15 Saturday,10,15 Sunday,12,14""", }, { "prompt": "Help me show this person's performance in different aspects, is he a hexagonal warrior", "data": """dimension,performance Strength,5 Speed,5 Shooting,3 Endurance,5 Precision,5 Growth,5""", }, { "prompt": "Show data flow", "data": """Origin,Destination,value Node A,Node 1,10 Node A,Node 2,5 Node B,Node 2,8 Node B,Node 3,2 Node C,Node 2,4 Node A,Node C,2 Node C,Node 1,2""", }, ] async def main(): for index, item in enumerate(tasks): logger.info(f"Begin task {index} / {len(tasks)}!") agent = DataAnalysis() await agent.run( f"{prefix},chart_description:{item['prompt']},Data:{item['data']}" ) logger.info(f"Finish with {item['prompt']}") if __name__ == "__main__": asyncio.run(main())