def generate_qa()

in use-cases/model-fine-tuning-pipeline/data-preparation/gemma-it/src/dataprep.py [0:0]


def generate_qa(context, category):
    try:
        qa = generate_content(context)
    except tenacity.RetryError as e:
        logger.error(
            f"Exception: {e}, failed to generate content for context: {context}"
        )
        return None
    except Exception as e:
        logger.error(
            f"Unhandled exception from generate_content: {type(e).__name__}",
            exc_info=True,
        )
        raise

    if qa == None:
        return None

    # Create a DataFrame
    temp_df = pd.DataFrame(columns=["Question", "Answer", "Context"])
    qa_list = qa.split(";")

    # Create a list to hold the data
    new_data = []

    # Iterate over the QA items
    for qa_item in qa_list:
        q_a = qa_item.split(":")
        if len(q_a) == 2:
            ans = q_a[1].strip() + " \n" + extract_product_details(context)
            # Append as the list
            new_data.append([q_a[0].strip(), ans, f"Online shopping for {category}"])

    # Create the DataFrame after collecting all data
    temp_df = pd.DataFrame(new_data, columns=temp_df.columns)

    return temp_df