Prompt engineering can be understood as the act of elaborating texts that, when used as inputs, produce the best outputs from a chatty AI for a given objective. There are many characteristics of a text that may influence the quality of this output. These include writing style, prompt length, word and construction-choices made by the user, the amount of information provided in the prompt and other aspects that are found in any text. When engineering prompts with the goal of evaluating the quality of the responses of LLMs, we tried to control the influence of all of those text aspects as much as we could. We opted to use prompt templates. A template is simply a piece of text that has slots that can be filled with various information, facilitating the evaluation of different pieces of data in the same experimental setting. In [Copilots for Linguists: AI, Constructions and Frames](https://www.cambridge.org/core/elements/abs/copilots-for-linguists/05A7C66C5912ED555786DD1A25C6442E) we focused on Frame Semantics when working with templates and used frame data (e.g. definition, frame elements and lexical units) to fill out the slots. We also combined different templates to former larger prompts that allowed us to analyze how chatty LLMs behave with different inputs. The code used to generate prompts based on the frame data and the templates can be found at [https://github.com/arthurlorenzi/copilot-for-linguists](https://github.com/arthurlorenzi/copilot-for-linguists). The following is a flowchart of process we used to generated different prompts: ![[flowchart.png]] If you want to see some of these template prompts used in our experiments, check "[[Proposing new lexical units]]", "[[Proposing new frames of the same kind]]" and "[[Proposing new frames based on inheritance]]". The slots are indicated with a `<<slot>>` tag. Note that we also asked the Chatty LLM to reply using JSON as a way to automate the data collection step.