import argparse
import json
import random

random.seed(42)


def sample(args):
    with open(args.dataset_path, mode='r') as f:
        dataset_list = json.load(f)

    sampled_dataset = [
        {"instruction": sample["instruction"], "id": idx}
        for idx, sample in enumerate(random.sample(dataset_list, args.sample_size))
    ]

    with open(args.save_path, mode='w') as f:
        json.dump(sampled_dataset, f, indent=4,
                  default=str, ensure_ascii=False)


if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('--dataset_path', type=str, default=None,
                        required=True, help="path to the pretrain dataset")
    parser.add_argument('--save_path', type=str, default='prompt.json',
                        help="path to save the prompt dataset")
    parser.add_argument('--sample_size', type=int,
                        default=16384, help="size of the prompt dataset")
    args = parser.parse_args()
    sample(args)
