-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathget_benchmark_sample.py
More file actions
79 lines (71 loc) · 2.68 KB
/
get_benchmark_sample.py
File metadata and controls
79 lines (71 loc) · 2.68 KB
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
import json
import pandas as pd
from datasets import load_dataset
dataset = load_dataset(f"HIDIVE/DQVis")
df = dataset['train'].to_pandas()
# fitler df to only include dataset_schema of hubmap_2025-05-05
df = df[df['dataset_schema'].isin(['hubmap_2025-05-05'])]
# TODO: get other dataset_schemas working
# group by the combination of query_template and spec_template
grouped = df.groupby(['query_template', 'spec_template', 'dataset_schema'])
# randomly sample one row from each group
# set random_state for reproducibility
sampled_df = grouped.apply(lambda x: x.sample(1, random_state=97930)).reset_index(drop=True)
print(sampled_df)
# get data package map
data_package_map = {
"4DN": "./out/data_packages/4DN/datapackage_udi.json",
"hubmap_2025-05-05": "./out/data_domains/hubmap_data_schema.json",
"MetabolomicsWorkbench": "./out/data_packages/MetabolomicsWorkbench/C2M2_datapackage_udi.json",
"MoTrPAC": "./out/data_packages/MoTrPAC/C2M2_datapackage_udi.json",
"SenNet": "./out/data_packages/SenNet/C2M2_datapackage_udi.json",
}
# convert paths to content
for key, path in data_package_map.items():
with open(path, 'r') as f:
content = json.load(f)
data_package_map[key] = json.dumps(content)
# get data domain map
data_domain_map = {
"4DN": "./out/data_domains/4DN_domains.json",
"hubmap_2025-05-05": "./out/data_domains/hubmap_domains.json",
"MetabolomicsWorkbench": "./out/data_domains/MetabolomicsWorkbench_domains.json",
"MoTrPAC": "./out/data_domains/MoTrPac_domains.json",
"SenNet": "./out/data_domains/SenNet_domains.json",
}
# convert paths to content
for key, path in data_domain_map.items():
with open(path, 'r') as f:
content = f.read()
data_domain_map[key] = content
test_case_list = []
for index, row in sampled_df.iterrows():
test_case = {
"input": {
"model": "agenticx/UDI-VIS-Beta-v2-Llama-3.1-8B",
"messages": [
{
"role": "user",
"content": row['query']
}
],
"dataSchema": data_package_map.get(row['dataset_schema'], ""),
"dataDomains": data_domain_map.get(row['dataset_schema'], ""),
},
"expected": {
"tool_calls": [
{
"name": 'RenderVisualization',
"arguments": {
"spec": row['spec']
}
}
],
"orchestrator_choice": 'render-visualization'
},
}
test_case_list.append(test_case)
# save to json file
import json
with open('./out/benchmark_sample.json', 'w') as f:
json.dump(test_case_list, f, indent=4)