What is the primary goal of prompt engineering?	To improve a written prompt to achieve more reliable and higher quality outputs.
Describe the typical workflow in this prompt engineering module.	Write an initial prompt, evaluate it (expect a poor score), and then iteratively improve it using prompt engineering techniques.
What is the specific goal of the initial prompt being developed in this module?	To generate a one-day meal plan for an athlete based on their height, weight, goal, and dietary restrictions.
What is the function of the `prompt evaluator` class?	It wraps all the necessary components, including dataset generation and model grading, into a single class.
Why is concurrency used in the evaluation pipeline?	To dramatically speed up the evaluation and dataset generation processes by allowing multiple API calls simultaneously.
What action should a user take if they encounter rate limit errors during evaluation?	Reduce the concurrency value (e.g., change it from 50 to 1 or 3).
What information must be defined in the prompt input specification?	A dictionary listing all required properties for the prompt, such as height, weight, goal, and dietary restrictions.
What is the purpose of the `extra criteria` string during the evaluation process?	It allows developers to specify extra criteria that the model must consider when grading the output (e.g., requiring a caloric total or macro breakdown).
What file format is generated to view the detailed evaluation report?	`output.html`.
What is the initial prompt expected to look like before engineering techniques are applied?	A simple, naive prompt (e.g., "what should this person eat?") which typically results in a very poor evaluation score.
