Duibonduil commited on
Commit
af55833
·
verified ·
1 Parent(s): 2afafb5

Upload 3 files

Browse files
AWorld-main/aworlddistributed/client/aworld_client_run_gaia.py ADDED
@@ -0,0 +1,91 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Initialize AworldTaskClient with server endpoints
2
+ import asyncio
3
+ import logging
4
+ from datetime import datetime
5
+ import os
6
+ import random
7
+ import uuid
8
+
9
+ from aworld.utils.common import get_local_ip
10
+
11
+ from client.aworld_client import AworldTask, AworldTaskClient
12
+
13
+ AWORLD_TASK_CLIENT = AworldTaskClient(
14
+ know_hosts = ["localhost:9999"]
15
+ )
16
+
17
+
18
+ async def _run_gaia_task(gaia_task: AworldTask, delay: int, background: bool = False) -> None:
19
+ """Run a single Gaia task with the given question ID.
20
+
21
+ Args:
22
+ gaia_task_id: The ID of the question to process
23
+ """
24
+ global AWORLD_TASK_CLIENT
25
+ await asyncio.sleep(delay)
26
+
27
+ # Submit task to Aworld server
28
+ await AWORLD_TASK_CLIENT.submit_task(gaia_task, background=background)
29
+
30
+ # Get and print task result
31
+ task_result = await AWORLD_TASK_CLIENT.get_task_state(task_id=gaia_task.task_id)
32
+ if not background:
33
+ logging.info(f"execute task_result#{gaia_task.task_id} is {task_result.data if task_result else None}")
34
+ else:
35
+ logging.info(f"submit task_result#{gaia_task.task_id} background success, please use task_id get task_result await a moment")
36
+
37
+
38
+
39
+ async def _batch_run_gaia_task(gaia_tasks: list[AworldTask]) -> None:
40
+ """Run multiple Gaia tasks in parallel.
41
+
42
+ """
43
+ tasks = [
44
+ _run_gaia_task(gaia_task, index * 3, background=True)
45
+ for index, gaia_task in enumerate(gaia_tasks)
46
+ ]
47
+ await asyncio.gather(*tasks)
48
+
49
+
50
+ CUSTOM_SYSTEM_PROMPT = f""" **PLEASE CUSTOM IT **"""
51
+
52
+ if __name__ == '__main__':
53
+ gaia_task_ids = ['c61d22de-5f6c-4958-a7f6-5e9707bd3466']
54
+ gaia_tasks = []
55
+ custom_mcp_servers = [
56
+ # "e2b-server",
57
+ "e2b-code-server",
58
+ "terminal-controller",
59
+ "excel",
60
+ # "filesystem",
61
+ "calculator",
62
+ "ms-playwright",
63
+ "audio_server",
64
+ "image_server",
65
+ "google-search",
66
+ # "video_server",
67
+ # "search_server",
68
+ # "download_server",
69
+ # "document_server",
70
+ # "youtube_server",
71
+ # "reasoning_server",
72
+ ]
73
+
74
+ for gaia_task_id in gaia_task_ids:
75
+ task_id = datetime.now().strftime("%Y%m%d%H%M%S") + "_" + gaia_task_id + "_" + str(uuid.uuid4())
76
+ gaia_tasks.append(
77
+ AworldTask(
78
+ task_id=task_id,
79
+ agent_id="gaia_agent",
80
+ agent_input=gaia_task_id,
81
+ session_id="session_id",
82
+ user_id=os.getenv("USER", "SYSTEM"),
83
+ client_id=get_local_ip(),
84
+ mcp_servers=custom_mcp_servers,
85
+ max_retries=5,
86
+ llm_custom_input="你好"
87
+ # llm_model_name="gpt-4o",
88
+ # task_system_prompt=CUSTOM_SYSTEM_PROMPT
89
+ )
90
+ )
91
+ asyncio.run(_batch_run_gaia_task(gaia_tasks))
AWorld-main/aworlddistributed/client/aworld_client_run_web.py ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Initialize AworldTaskClient with server endpoints
2
+ import asyncio
3
+ import random
4
+ import uuid
5
+
6
+ from base import AworldTask
7
+ from client.aworld_client import AworldTaskClient
8
+
9
+ AWORLD_TASK_CLIENT = AworldTaskClient(
10
+ know_hosts=["localhost:9999"]
11
+ )
12
+
13
+
14
+ async def _run_web_task(web_question_id: str) -> None:
15
+ """Run a single Web task with the given question ID.
16
+
17
+ Args:
18
+ web_question_id: The ID of the question to process
19
+ """
20
+ global AWORLD_TASK_CLIENT
21
+ task_id = str(uuid.uuid4())
22
+
23
+ # Submit task to Aworld server
24
+ await AWORLD_TASK_CLIENT.submit_task(
25
+ AworldTask(
26
+ task_id=task_id,
27
+ agent_id="playwright_agent",
28
+ agent_input=web_question_id,
29
+ session_id="session_id",
30
+ user_id="SYSTEM"
31
+ )
32
+ )
33
+
34
+ # Get and print task result
35
+ task_result = await AWORLD_TASK_CLIENT.get_task_state(task_id=task_id)
36
+ print(task_result)
37
+
38
+
39
+ async def _batch_run_web_task(start_i: int, end_i: int) -> None:
40
+ """Run multiple Web tasks in parallel.
41
+
42
+ Args:
43
+ start_i: Starting question ID
44
+ end_i: Ending question ID
45
+ """
46
+ tasks = [
47
+ _run_web_task(str(i))
48
+ for i in range(start_i, end_i + 1)
49
+ ]
50
+ await asyncio.gather(*tasks)
51
+
52
+
53
+ if __name__ == '__main__':
54
+ # Run batch processing for questions 1-5
55
+ asyncio.run(_batch_run_web_task(25, 25))
AWorld-main/aworlddistributed/client/aworld_download_background_tasks.py ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import asyncio
2
+
3
+ from client.aworld_client import AworldTaskClient
4
+
5
+
6
+ async def download_with_timerange(know_hosts: list[str], start_time, end_time, save_path):
7
+ # create client
8
+ client = AworldTaskClient(know_hosts = know_hosts)
9
+
10
+ # 1. download task results to file
11
+ file_path = await client.download_task_results(
12
+ start_time=start_time,
13
+ end_time=end_time,
14
+ save_path=save_path
15
+ )
16
+
17
+ # 2. parse local jsonl file
18
+ local_results = client.parse_task_results_file(save_path)
19
+
20
+ # 3. analyze results data
21
+ for result in local_results:
22
+ print(f"Submit User ID: {result['user_id']}, Task ID: {result['task_id']},Status: {result['status']}, Replays: {result['result_data']['replays_file'] if result['result_data'] else ''}")
23
+
24
+ if __name__ == '__main__':
25
+ asyncio.run(download_with_timerange(know_hosts= ["http://localhost:9999"],
26
+ start_time="2025-06-12 00:00:00",
27
+ end_time="2025-06-12 23:59:59",
28
+ save_path="results/january_tasks.jsonl"))