2025-05-07 22:35:48 +08:00
from opencompass . datasets import NejmaibenchDataset , NejmaibenchEvaluator
2025-05-06 21:09:31 +08:00
from opencompass . openicl . icl_inferencer import GenInferencer
from opencompass . openicl . icl_prompt_template import PromptTemplate
from opencompass . openicl . icl_retriever import ZeroRetriever
import os
SYSTEM_PROMPT = ' You are a helpful medical assistant. \n \n ' # Where to put this?
ZERO_SHOT_PROMPT = ' Q: {question} \n Please select the correct answer from the options above and output only the corresponding letter (A, B, C, D, or E) without any explanation or additional text. \n '
# Reader configuration
reader_cfg = dict (
input_columns = [
' question ' ,
' options ' ,
' Subject ' ,
' prompt_mode ' ,
] ,
output_column = ' label ' ,
)
# Inference configuration
infer_cfg = dict (
prompt_template = dict (
type = PromptTemplate ,
template = dict (
begin = [
dict ( role = ' SYSTEM ' , fallback_role = ' HUMAN ' , prompt = SYSTEM_PROMPT ) ,
] ,
round = [
dict (
role = ' HUMAN ' ,
prompt = ZERO_SHOT_PROMPT , # prompt mode: zero-shot
) ,
] ,
) ,
) ,
retriever = dict ( type = ZeroRetriever ) ,
inferencer = dict ( type = GenInferencer ) ,
)
# Evaluation configuration
eval_cfg = dict (
2025-05-07 22:35:48 +08:00
evaluator = dict ( type = NejmaibenchEvaluator ) ,
2025-05-06 21:09:31 +08:00
pred_role = ' BOT ' ,
)
nejmaibench_dataset = dict (
2025-05-07 22:35:48 +08:00
type = NejmaibenchDataset ,
2025-05-06 21:09:31 +08:00
abbr = ' nejmaibench ' ,
2025-05-07 22:35:48 +08:00
path = ' opencompass/nejmaibench ' ,
2025-05-06 21:09:31 +08:00
prompt_mode = ' zero-shot ' ,
reader_cfg = reader_cfg ,
infer_cfg = infer_cfg ,
eval_cfg = eval_cfg ,
)
nejmaibench_datasets = [ nejmaibench_dataset ]