(args)
| 1120 | |
| 1121 | |
| 1122 | def run_benchmark(args): |
| 1123 | |
| 1124 | data_file = Path(args.data_dir) |
| 1125 | results_dir = Path(args.results_dir) / args.generation_model_name |
| 1126 | results_dir.mkdir(parents=True, exist_ok=True) |
| 1127 | |
| 1128 | print(f"🚀 Starting PlotCraft Benchmark Evaluation") |
| 1129 | print(f"Generation Model: {args.generation_model_name}") |
| 1130 | print(f"Evaluation Model: {args.evaluation_model_name}") |
| 1131 | print(f"Data File: {data_file}") |
| 1132 | print(f"Results Directory: {results_dir}") |
| 1133 | print("=" * 60) |
| 1134 | |
| 1135 | |
| 1136 | generation_cache_file = results_dir / "generation_cache.jsonl" |
| 1137 | generation_client = FluxOpenAIChat( |
| 1138 | base_url=args.generation_base_url, |
| 1139 | api_key=args.generation_api_key, |
| 1140 | cache_file=str(generation_cache_file), |
| 1141 | max_retries=args.max_retries, |
| 1142 | max_qps=args.max_qps, |
| 1143 | max_qpm=args.max_qpm, |
| 1144 | ) |
| 1145 | |
| 1146 | evaluation_cache_file = results_dir / "evaluation_cache.jsonl" |
| 1147 | evaluation_client = FluxOpenAIChat( |
| 1148 | base_url=args.evaluation_base_url, |
| 1149 | api_key=args.evaluation_api_key, |
| 1150 | cache_file=str(evaluation_cache_file), |
| 1151 | max_retries=args.max_retries, |
| 1152 | max_qps=args.max_qps, |
| 1153 | max_qpm=args.max_qpm, |
| 1154 | ) |
| 1155 | |
| 1156 | data_evaluation_cache_file = results_dir / "data_evaluation_cache.jsonl" |
| 1157 | data_evaluation_client = FluxOpenAIChat( |
| 1158 | base_url=args.evaluation_base_url, |
| 1159 | api_key=args.evaluation_api_key, |
| 1160 | cache_file=str(data_evaluation_cache_file), |
| 1161 | max_retries=args.max_retries, |
| 1162 | max_qps=args.max_qps, |
| 1163 | max_qpm=args.max_qpm, |
| 1164 | ) |
| 1165 | |
| 1166 | generation_prompt = read_system_prompt(args.generation_prompt_path) |
| 1167 | evaluation_prompt = read_system_prompt(args.evaluation_prompt_path) |
| 1168 | data_evaluation_prompt = read_system_prompt(args.data_evaluation_prompt_path) |
| 1169 | |
| 1170 | print("🔄 Loading task information...") |
| 1171 | task_infos = [] |
| 1172 | |
| 1173 | try: |
| 1174 | with open(data_file, 'r', encoding='utf-8') as f: |
| 1175 | data = json.load(f) |
| 1176 | |
| 1177 | # 直接读取JSON中的任务列表并转换路径 |
| 1178 | for task_key, task_info in data.items(): |
| 1179 | # 转换路径字段为Path对象 |
no test coverage detected