""" https://github.com/openai/simple-evals/blob/main/common.py """ import os from collections import defaultdict from typing import Any import io import random import numpy as np from tqdm import tqdm QUERY_TEMPLATE_MULTICHOICE = """ Answer the following multiple choice question. Think step by step and then give the final answer of the following format: \\boxed{{$LETTER}} where LETTER is one of ABCD. {Question} A) {A} B) {B} C) {C} D) {D} """.strip() def format_prompt(row: dict): choices = [ row["Correct Answer"], row["Incorrect Answer 1"], row["Incorrect Answer 2"], row["Incorrect Answer 3"], ] permutation = [0, 1, 2, 3] random.shuffle(permutation) choices = [choices[i] for i in permutation] correct_index = choices.index(row["Correct Answer"]) correct_answer = "ABCD"[correct_index] choices_dict = dict( A=choices[0], B=choices[1], C=choices[2], D=choices[3], Question=row["Question"] ) prompt_messages = QUERY_TEMPLATE_MULTICHOICE.format(**choices_dict) return prompt_messages, correct_index