def evaluate(self, response_info, gt_info, **kwargs):
        """
        response_info: dict: {"file_name_1": response, "file_name_2": gt}
        gt_info: dict: {"file_name_1": gt, "file_name_2": gt}
        kwargs: dataset index config: {'dataset': 'kie_benchmark_POIE', 'group': 'kie', 'op': 'poie', 'num': 250}
        """
        # gt should be a dict for kie task, fix for VLMEvalKit
        for image_name, label_content in gt_info.items():
            if isinstance(label_content, str):
                gt_info[image_name] = json.loads(label_content)

        response_info = normalize_values_of_nested_dict(response_info, self.normalize_func)
        gt_info = normalize_values_of_nested_dict(gt_info, self.normalize_func)

        f1_score, class_eval_info, error_info = cal_f1_all(response_info, gt_info)
        acc_average, acc_error_info = cal_acc_all(response_info, gt_info)

        # summary info
        summary_info = {"f1_score": f1_score, "acc": acc_average}
        eval_info = {"summary": summary_info, "class_f1_score": class_eval_info,
                     "f1_error_info": error_info, "acc_error_info": acc_error_info}
        return eval_info

        response_info: dict: {"file_name_1": response, "file_name_2": gt}
        gt_info: dict: {"file_name_1": gt, "file_name_2": gt}
        kwargs: dataset index config: {'dataset': 'kie_benchmark_POIE', 'group': 'kie', 'op': 'poie', 'num': 250}
        
vlmeval/dataset/utils/ccocr_evaluator/kie_evaluator.py