in src/lighteval/tasks/templates/multichoice.py [0:0]
def prompt_fn(line, task_name: str):
mcq_input = adapter_fn(line)
if mcq_input is None:
return None
translation_literals = TRANSLATION_LITERALS[language]
instruction_val = mcq_input.get("instruction")
instruction = f"{instruction_val}\n" if instruction_val else ""
context_val = mcq_input.get("context")
context = f"{capitalize(fix_ending_punct(context_val, translation_literals))}\n" if context_val else ""
question = capitalize(fix_ending_punct(mcq_input["question"], translation_literals))
answers = [capitalize(fix_ending_punct(str(answer), translation_literals)) for answer in mcq_input["choices"]]
options = build_choices(answers, formulation, translation_literals)
options = f"{options}\n" if options else ""
answers = build_answers(answers, formulation, translation_literals)
answer_word = capitalize(translation_literals.answer)
question_word = capitalize(translation_literals.question_word)
query = MULTI_CHOICE_QA_QUERY.format(
instruction=instruction,
question=question,
context=context,
question_word=question_word,
answer_word=answer_word,
colon=translation_literals.colon,
sentence_space=translation_literals.sentence_space,
options=options,
)
return Doc(
task_name=task_name,
query=query,
gold_index=as_list(mcq_input["gold_idx"]),
choices=answers,
instruction=instruction_val,
unconditioned_query=f"{answer_word}{translation_literals.colon}",
)