write a short_training_dataset_prompt.py, and correspond short_training_dataset_prompt.sh to fill parameters.
--orig-inj-datapath (use /data/local/hujk/IPIBench/topicattack/data/ crafted_instruction_data_tri_injection_qa.json in sh)
for each data, it extract inst=data["instruction"] , cont=data["input"], ans=data["output"], inj=data["injection"], and generate a new dataset and save to 
--output-path (use short_crafted_instruction_data_tri_injection_qa.jsonl in sh), and it create a list of message in this format:
user() means {"role":"user", "content": content}, tool/assistent so on. the final dataset is a list for each line, [msg1, msg 2...]
create rng with seed 42, and use it in following code

dataset_message_candidate = []
for each data in datasets:
    message_list = [
    inst, cont, ans = select from other data randomly from 2nd run, inst/cont are paired, a.k.a in same data
    inst , inj= f"<inst>{inst}</inst>", f"<inst>{inj}</inst>" #warp <inst></inst> to inst and inj, don't touch content
    # inst + inj combination
    message_list += [[user(inst) + tool(cont) + assistant(ans)]]
    message_list += [[user(inst) + tool(cont + inj) + assistant(ans)]]
    message_list += [[user(inst) + tool(inj + cont) + assistant(ans)]]
    message_list += [[user(inst + cont) + assistant(ans)]]
    message_list += [[user(cont + inst) + assistant(ans)]]
    message_list += [[user(inst + cont + inj) + assistant(ans)]]
    
    # inst + inst2 combination
    inst2, cont2 = select from other data randomly, inst2/cont2 are paired, a.k.a in same data
    inst2 = f"<inst>{inst2}</inst>"  #warp <inst></inst> to inst2, don't touch content
    message_list += [[user(inst) + tool(suffile([cont, inst2])) + assistant(ans)]]
    message_list += [[user(inst) + tool(suffile([cont, inst2, const2])) + assistant(ans)]]
    dataset_message_candidate += message_list

output_dataset = []
for _ in range(len(datasets)):
    temp_message_list = []
    for i in range(random(1,2)):
        temp_message_list += random choose(dataset_message_candidate)
        remove last assistant(ans)
    output_dataset += temp_message_list