def __init__(
        self,
        feedback_fn: Callable,
        agg_funcs: List[core_feedback.AggCallable],
        benchmark_params: BenchmarkParams,
    ):
        """Create a benchmark experiment class which defines custom feedback
        functions and aggregators to evaluate the feedback function on a ground
        truth dataset.

        Args:
            feedback_fn: function that takes in a row of ground truth data and
                returns a score by typically a LLM-as-judge

            agg_funcs: list of aggregation functions to compute metrics on the
                feedback scores

            benchmark_params: benchmark configuration parameters

        """

        self.feedback_fn = feedback_fn
        self.benchmark_params = benchmark_params

        self.f_benchmark_metrics: List[core_feedback.Feedback] = [
            core_feedback.Feedback(
                lambda x: x,
                name=f"metric_{agg_func.__name__}",
            )
            .on(
                select_schema.Select.RecordCalls.run_score_generation_on_single_row.rets
            )
            .aggregate(agg_func)
            for agg_func in agg_funcs
        ]
Create a benchmark experiment class which defines custom feedback
        functions and aggregators to evaluate the feedback function on a ground
        truth dataset.

        Args:
            feedback_fn: function that takes in a row of ground truth data and
                returns a score by typically a LLM-as-judge

            agg_funcs: list of aggregation functions to compute metrics on the
                feedback scores

            benchmark_params: benchmark configuration parameters

        
src/benchmark/trulens/benchmark/benchmark_frameworks/tru_benchmark_experiment.py