2025-05-06 21:19:27 +08:00
from opencompass . datasets import MedbulletsDataset , MedbulletsEvaluator
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 ' ,
' question_type ' ,
' 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 (
evaluator = dict ( type = MedbulletsEvaluator ) ,
pred_role = ' BOT ' ,
)
medbullets_dataset = dict (
type = MedbulletsDataset ,
abbr = ' medbullets ' ,
2025-05-07 22:06:19 +08:00
path = ' opencompass/medbullets ' ,
2025-05-06 21:19:27 +08:00
prompt_mode = ' zero-shot ' ,
reader_cfg = reader_cfg ,
infer_cfg = infer_cfg ,
eval_cfg = eval_cfg ,
)
medbullets_datasets = [ medbullets_dataset ]