import json import os from loguru import logger from lmms_eval.tasks._task_utils.file_utils import generate_submission_file def docvqa_doc_to_visual(doc): return [doc["image"].convert("RGB")] def docvqa_doc_to_text(doc, lmms_eval_specific_kwargs): question = doc["question"] pre_prompt = lmms_eval_specific_kwargs["pre_prompt"] post_prompt = lmms_eval_specific_kwargs["post_prompt"] return f"{pre_prompt}{question}{post_prompt}" def docvqa_test_process_results(doc, results): pred = results[0] questionId = doc["questionId"] return {"anls": {"questionId": int(questionId), "answer": pred}, "submission": {"questionId": int(questionId), "answer": pred}} def docvqa_test_aggregate_results(results, args): # save results as json path = generate_submission_file("docvqa_test_for_submission.json", args) with open(path, "w") as f: json.dump(results, f) logger.info(f"Results saved to {path}")