from typing import List

from promptflow.core import tool


@tool
def aggregate(processed_results: List[str]):
    """
    This tool aggregates the processed result of all lines to the variant level and log metric for each variant.

    :param processed_results: List of the output of line_process node.
    """

    # Add your aggregation logic here
    # aggregated_results should be a dictionary with the metric name as the key and the metric value as the value.
    results_num = len(processed_results)
    print(results_num)
    print(processed_results)

    # Log metric for each variant
    from promptflow.core import log_metric
    log_metric(key="results_num", value=results_num)

    return results_num
