Spaces:
Sleeping
Sleeping
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"))
|