in src/lighteval/tasks/extended/olympiade_bench/main.py [0:0]
def get_answer_type_text(answer_type, is_chinese, multiple_answer):
if (
("Need_human_evaluate" in answer_type) or ("Tuple" in answer_type)
): # 'Tuple' has various meanings in different context, such as position or values of a series of variable, so it may lead to confusion to directly use 'tuple' in the prompt.
full_answer_text = ""
else:
if not multiple_answer:
answer_text = get_single_answer_type_text(answer_type, is_chinese)
if is_chinese:
full_answer_text = f",答案类型为{answer_text}"
else:
full_answer_text = f"The answer of The problem should be {answer_text}. "
else:
if "," not in answer_type: # Same answer type for all answers
answer_text = get_single_answer_type_text(answer_type, is_chinese)
if is_chinese:
full_answer_text = f",题目有多个答案,答案类型均为{answer_text}"
else:
full_answer_text = f"The problem has multiple answers, each of them should be {answer_text}. "
else:
answer_types = answer_type.split(",")
answer_types = [get_single_answer_type_text(t, is_chinese) for t in answer_types]
if len(set(answer_types)) == 1:
answer_text = answer_types[0]
if is_chinese:
full_answer_text = f",题目有多个答案,答案类型均为{answer_text}"
else:
full_answer_text = f"The problem has multiple answers, each of them should be {answer_text}. "
else:
if is_chinese:
answer_text = "、".join(answer_types)
full_answer_text = f",题目有多个答案,答案类型分别为{answer_text}"
else:
answer_text = ", ".join(answer_types)
full_answer_text = (
f"The problem has multiple answers, with the answers in order being {answer_text}. "
)
return full_answer_text