"""TriviaQA (official source: mandarjoshi/trivia_qa, rc.wikipedia config). rc.wikipedia = reading-comprehension WITH the Wikipedia evidence document (open-book, aligned with evalscope's default); rc.nocontext is the closed-book variant (pass --subset rc.nocontext). """ from ..sample import Sample from ..registry import register_dataset from ..spec import DatasetSpec @register_dataset( DatasetSpec( name='trivia_qa', source='mandarjoshi/trivia_qa', # official: https://huggingface.co/datasets/mandarjoshi/trivia_qa subset='rc.wikipedia', # open-book (evalscope parity); --subset rc.nocontext for closed split='validation', prompt_style='trivia_es', # es open-book template task_type='qa', tags=['knowledge', 'openqa'], description='TriviaQA with Wikipedia evidence (open-book); any alias counts.', ) ) def trivia_qa(): def to_sample(record: dict) -> Sample: answer = record['answer'] # {'value': ..., 'aliases': [...], ...} targets = [answer['value']] + list(answer.get('aliases') or []) # open-book (es parity): the FULL wiki_context list goes into the # prompt as Content (es adapter: record['entity_pages']['wiki_context']) entity = record.get('entity_pages') or {} # keep the native shape (list[str] in real data); wrapping in list() # would explode a bare string into chars -- es passes it through as-is wiki_list = entity.get('wiki_context') or [] return Sample( input=record['question'], target=targets, # multi-target: any alias counts metadata={'question_id': record.get('question_id'), 'evidence': wiki_list}, ) return to_sample