Maaac/CodeLLaMA-Linux-BugFix
08
1import json
2
3INPUT_FILE = './output/linux_bugfix_dataset.jsonl'
4OUTPUT_FILE = '../dataset/training_data_prompt_completion.jsonl'
5
6def format_prompt(original_code, instruction):
7 return (
8 "Given the following original C code:\n"
9 f"{original_code.strip()}\n\n"
10 "Instruction:\n"
11 f"{instruction.strip()}\n\n"
12 "Return the diff that fixes it:\n"
13 )
14
15def format_completion(diff_code):
16 return diff_code.strip()
17
18def convert_dataset(input_path, output_path):
19 with open(input_path, 'r', encoding='utf-8') as fin, \
20 open(output_path, 'w', encoding='utf-8') as fout:
21
22 for line in fin:
23 data = json.loads(line)
24 original_code = data["input"]["original code"]
25 instruction = data["input"]["instruction"]
26 diff_code = data["output"]["diff codes"]
27
28 prompt = format_prompt(original_code, instruction)
29 completion = format_completion(diff_code)
30
31 new_entry = {
32 "prompt": prompt,
33 "completion": completion
34 }
35
36 fout.write(json.dumps(new_entry, ensure_ascii=False) + '\n')
37
38 print(f"[DONE] Converted dataset saved to: {output_path}")
39
40if __name__ == "__main__":
41 convert_dataset(INPUT_FILE, OUTPUT_FILE)
42 