MCPcopy Create free account
hub / github.com/Speakn0w/RealChart2Code / save_score_result

Function save_score_result

RealChart2Code_eval/evaluate_task2.py:737–785  ·  view source on GitHub ↗
(task_info: Dict, evaluation: Dict, raw_response: str, plot_file: Path, 
                     results_dir: Path, generation_model: str, evaluation_model: str, 
                     execution_success: bool, execution_message: str)

Source from the content-addressed store, hash-verified

735
736
737def save_score_result(task_info: Dict, evaluation: Dict, raw_response: str, plot_file: Path,
738 results_dir: Path, generation_model: str, evaluation_model: str,
739 execution_success: bool, execution_message: str) -> Path:
740
741
742 task_dir = task_info['data_directory'].name
743 task_result_dir = results_dir / task_dir
744 task_result_dir.mkdir(exist_ok=True)
745
746
747 difficulty = task_info['difficulty']
748 is_multi = task_info['is_multi']
749 score_filename = f"score_{difficulty}_mul.json" if is_multi else f"score_{difficulty}.json"
750
751
752 overall_score = calculate_overall_score(evaluation)
753 if task_info['raw_generation_response']==None:
754 task_info['raw_generation_response']=''
755
756 result = {
757 "generation_model": generation_model,
758 "evaluation_model": evaluation_model,
759 "task_file": str(task_info['task_file']),
760 "category": task_info['category'],
761 "instruction": task_info['instruction'],
762 "difficulty": difficulty,
763 "is_multi": is_multi,
764 "timestamp": datetime.now().isoformat(),
765 "raw_generation_response": task_info['raw_generation_response'],
766
767 "execution_success": execution_success,
768 "execution_message": execution_message,
769 "code_generated": bool(task_info.get('code')),
770 "plot_generated": plot_file is not None,
771
772 "evaluation": evaluation,
773 "overall_score": overall_score,
774 "raw_response": raw_response
775 }
776
777
778 if plot_file:
779 result["plot_file"] = str(plot_file)
780
781 score_file = task_result_dir / score_filename
782 with open(score_file, 'w', encoding='utf-8') as f:
783 json.dump(result, f, ensure_ascii=False, indent=2)
784
785 return score_file
786
787
788def prepare_task_info(task_file: Path, max_data_rows: int) -> Optional[Dict]:

Callers 1

Calls 1

calculate_overall_scoreFunction · 0.70

Tested by

no test coverage detected