From 1f014c1d61e93eaf217d080291a095cb3fa0eacd Mon Sep 17 00:00:00 2001 From: Brandon Hancock Date: Tue, 28 Jan 2025 13:17:48 -0500 Subject: [PATCH] make sure to raise an error when missing training data --- .../utilities/evaluators/task_evaluator.py | 33 +++++++++++++++---- 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/src/crewai/utilities/evaluators/task_evaluator.py b/src/crewai/utilities/evaluators/task_evaluator.py index 5ee99e85d..0b7b8cca7 100644 --- a/src/crewai/utilities/evaluators/task_evaluator.py +++ b/src/crewai/utilities/evaluators/task_evaluator.py @@ -90,16 +90,37 @@ class TaskEvaluator: - training_data (dict): The training data to be evaluated. - agent_id (str): The ID of the agent. """ - print("Training data: ", training_data) output_training_data = training_data[agent_id] - final_aggregated_data = "" - for _, data in output_training_data.items(): + + for iteration, data in output_training_data.items(): + improved_output = data.get("improved_output") + initial_output = data.get("initial_output") + human_feedback = data.get("human_feedback") + + if not all([improved_output, initial_output, human_feedback]): + missing_fields = [ + field + for field in ["improved_output", "initial_output", "human_feedback"] + if not data.get(field) + ] + error_msg = ( + f"Critical training data error: Missing fields ({', '.join(missing_fields)}) " + f"for agent {agent_id} in iteration {iteration}.\n" + "This indicates a broken training process. " + "Cannot proceed with evaluation.\n" + "Please check your training implementation." + ) + self._logger.log("critical", error_msg, color="red") + raise ValueError(error_msg) + final_aggregated_data += ( - f"Initial Output:\n{data.get('initial_output')}\n\n" - f"Human Feedback:\n{data.get('human_feedback')}\n\n" - f"Improved Output:\n{data.get('improved_output')}\n\n" + f"Iteration: {iteration}\n" + f"Initial Output:\n{initial_output}\n\n" + f"Human Feedback:\n{human_feedback}\n\n" + f"Improved Output:\n{improved_output}\n\n" + "------------------------------------------------\n\n" ) evaluation_query = (