MCPcopy Create free account
hub / github.com/RUC-NLPIR/WebThinker / run_evaluation

Function run_evaluation

scripts/evaluate/evaluate.py:253–483  ·  view source on GitHub ↗
(filtered_data, input_list, output_list, task_type, output_dir, output_metrics_path, output_metrics_overall_path, use_llm=False, extract_answer=False, domain_fields=None, api_base_url=None, model_name=None)

Source from the content-addressed store, hash-verified

251
252
253def run_evaluation(filtered_data, input_list, output_list, task_type, output_dir, output_metrics_path, output_metrics_overall_path, use_llm=False, extract_answer=False, domain_fields=None, api_base_url=None, model_name=None):
254 # Initialize domain metrics dictionary
255 domain_metrics = defaultdict(lambda: {
256 'total': 0,
257 'correct': 0,
258 'em': [],
259 'acc': [],
260 'f1': [],
261 'math_equal': [],
262 'llm_equal': [],
263 'pass@1': []
264 })
265
266 # Helper function to get domain from item
267 def get_domain(item):
268 for field in domain_fields:
269 if field in item and item[field] is not None:
270 return item[field]
271 return 'Unknown'
272
273 if task_type == 'code':
274 # Prepare samples and generations for codegen_metrics
275 samples_list = []
276 generations_list = []
277 num_valid_answer = 0
278
279 for item, input_prompt, result in zip(filtered_data, input_list, output_list):
280 if type(result) == str:
281 item['Output'] = result
282 else:
283 item['Output'] = result.outputs[0].text
284
285 if item['Output'] == '':
286 item['Pred_Answer'] = ''
287 item['Question'] = input_prompt
288 item['Metrics'] = {'pass@1': 0}
289 item['Results'] = {}
290 item['Final_metadata'] = {}
291 continue
292
293 pred_code = extract_answer_fn(item['Output'], mode='codegen', extract_answer=extract_answer)
294 if pred_code != '':
295 num_valid_answer += 1
296
297 public_test_cases = json.loads(item.get("test_cases", "{}"))
298
299 inputs = public_test_cases.get("inputs", [])
300 outputs = public_test_cases.get("outputs", [])
301
302 sample = {
303 "input_output": json.dumps({
304 "inputs": inputs,
305 "outputs": outputs
306 }),
307 }
308
309 samples_list.append(sample)
310 generations_list.append([pred_code])

Callers 6

main_asyncFunction · 0.90
main_asyncFunction · 0.90
main_asyncFunction · 0.90
main_asyncFunction · 0.90
main_asyncFunction · 0.90
evaluate.pyFile · 0.85

Calls 4

get_domainFunction · 0.85
evaluate_predictionsFunction · 0.85
extract_answer_fnFunction · 0.70

Tested by

no test coverage detected