import config from api_wrappers import hf_data_loader N_EXAMPLES = 15 def get_example_prompt_end_to_start(start_msg, end_msg): return f"""START OF THE EXAMPLE For the following edited commit message: START OF THE EDITED COMMIT MESSAGE {end_msg} END OF THE EDITED COMMIT MESSAGE You would output the following initial commit message: START OF THE INITIAL COMMIT MESSAGE {start_msg} END OF THE INITIAL COMMIT MESSAGE END OF THE EXAMPLE""" def get_example_prompt_start_to_end(start_msg, end_msg): return f"""START OF THE EXAMPLE For the following LLM-generated commit message: START OF THE GENERATED COMMIT MESSAGE {start_msg} END OF THE GENERATED COMMIT MESSAGE You would output the following improved commit message: START OF THE IMPROVED COMMIT MESSAGE {end_msg} END OF THE IMPROVED COMMIT MESSAGE END OF THE EXAMPLE""" manual_df = hf_data_loader.load_raw_rewriting_as_pandas()[['commit_msg_start', 'commit_msg_end']] manual_df = manual_df.sample(n=N_EXAMPLES, random_state=config.RANDOM_STATE) def generate_examples(end_to_start): prompt_fn = get_example_prompt_end_to_start if end_to_start else get_example_prompt_start_to_end examples = [ prompt_fn(row['commit_msg_start'], row['commit_msg_end']) for _, row in manual_df.iterrows() ] return "\n".join(examples) EXAMPLES_END_TO_START = generate_examples(end_to_start=True) EXAMPLES_START_TO_END = generate_examples(end_to_start=False)