How to train your ChatGPT or: How I Learned to Stop Worrying and Love AI
When I was in design school, one of my college professors took the class into a room with a giant coffin-like machine. We put our artwork into it, put our hands into these futuristic gloves to manipulate the art, and then took a picture. I think he called it a "Photostat machine." I dunno because the next words out of his mouth were, "Great, you used it. You will never use this machine again." The Desktop Publishing Revolution was here. The wave of the future was our new-found powers of fonts and techniques (both printing and, soon, digital). However, it added complexity to the designer's responsibilities to give them that power. Today, we are at the origin of another revolution - AI. And now, the wave of the future isn't about complexity. It's about simplicity. Being able to deconstruct complexity is the new superpower. I want that superpower. But where do you jump in?
Like most of us, I've been dabbling in AI for the last few months. And, probably, like most of us, you don't know where to start. ChatGPT wows you with its ability but always seems to let you down when it goes off the reservation. The question is: how can we harness its impressive capabilities while knowing what its limitations are?
This post does not teach you how to be an expert in AI. Instead, its purpose is to help give you the confidence to jump in and get your feet wet. AI is not going away, and it's becoming apparent that there are important skills that can help us get a leg up. So, let's dive in!
Working with Large Language Models
With AI, the most critical skill set I've found is also a great trait in life: the ability to break complexity into simplicity. I had been toying with writing a blog for some time, but I knew it would be a considerable time commitment. After my first two posts, I realized that this wasn't sustainable. So, I turned to AI. It was a mess.
The first output stunk. Bland. Generic. Bad. But this was my fault. The prompt I wrote? "Write me a blog post about the importance of journaling." Wrong, wrong, wrong. Why? Because, just like your husband and co-workers, ChatGPT isn't a mind reader. I had specific ideas for what should be included. But I never told ol' CG that.
Since then, I've gotten better at this. But it's still not great. I ended up writing almost the whole thing from scratch. Everything that you're reading? All 100% Charlotte. But I can't help but feel that it's making me better: maybe the writing is "meh," but the clarity it's bringing to my thoughts and outlooks is a "chef kiss."
That's because not only do I have to chop things up into bite-size pieces, but I also have to get 100% clear on what I expect. I'll notice that a paragraph doesn't seem right. That's when I realized that I'm not clear on what my true intention is and what the message is that I'm trying to communicate.
It's also helping me to stop self-editing myself. Cut to the heart of the matter:
Don't be fancy.
Just state what I'm genuinely trying to communicate.
Let it all hang out, and then let AI be fancy for me.
Make it a Habit
There's no easy way to incorporate something where you're unsure of its value. So, the best way to do it is to jump in. You have to get your feet wet. There is a lot of nuance that you can only experience. For me, the problem was figuring out how to use it. Before the blog, I knew it was important, but I couldn't see any use cases. I needed to figure out a way to have something I'd never thought about - something new - become something I think about quite often.
What I like to do when I have that "something new" - whether it's tech or a behavior - and I'm not sure how I could use it, I set a daily reminder to consider it. For example, for AI, I wrote a daily reminder that said, "Think about my work today. Can AI help?" And it worked - it starts out small, like helping me rewrite an email. I get a little more confident and then enlist it to help me write my blogs. Gain a little more knowledge and so on: it becomes a self-perpetuating cycle where I start to think about it more and more. And when I do, more and more opportunities present themselves.
Like the fact that it sucks at writing…
The Menu Spreadsheet Epiphany
Let's take a quick detour. I hate menu planning. My husband is the family cook, and I'm the family organizer, so it seems natural that weekly menu planning (along with the grocery list) should fall to me. It's only fair. But here's the thing: I hate menu planning. So, let me take you on a journey of laziness and hatred of meal planning that led to AI insights.
My husband is a fantastic cook. And when we were younger, we enjoyed exploring new meals and recipes. But after you have a kid, that goes out the window faster than staying up past 10. There are many reasons, but if you're a parent, you already know; if you're not, you don't care. So let's just skip ahead, shall we?
Several years ago, I realized we only made a handful of recipes. I created a spreadsheet with all these meals as daily drop-down selections to make life easier. I could create a menu that assigned one to every day of the week. Then, for these recipes, I added what the ingredients were. Now, anytime I selected one, I just had to copy and paste those ingredients, and voila - I had a grocery list. Over the years, it has developed: new recipes added, snacks, and breakfast and lunch meals added.
This made creating menus SO much more straightforward. But I still would wait until the very last minute (Sunday morning) and scramble to create the grocery list. And then head out to the store by six, only to have everything picked over. And that meant more scurrying to come up with "pantry favorites." Lentils are great, but enough already. It's still a hassle. Still drudgery. Still hated it. So maybe (just maybe!) if AI isn't going to help me write my blog, could it help with this mundane yet necessary task?
You've got data!
Okay - so I got me some data. And I got me some drudgery. The meeting of these two is like chocolate and PB - a perfect match. What else? Are we done? No. No, we are not.
Before we do anything, we need to clarify what we want ChatGPT to output. That will determine not just the data that we have but how we feed this data into ChatGPT. For the example of my menu generator, I wanted to be able to have it spit out a list of meals that could be big (i.e., ones that could have leftovers for another night), a few "fast" meals for the days when my son, Jack, has extracurriculars after school. Oh - and what's the point of having a kid if they can't do stuff for me? I want to have one meal where Jack can prepare it. And I also want it to create a grocery list.
Do you see where I'm going here? It's not as simple as the recipes. We need a way to indicate that some recipes are "big" (for leftovers), some are quick and fast, and some are meals Jack can prepare without burning the house down or chopping off a finger.
But fear not: we've got all the raw materials: menus and ingredients. The variables (fast, big or kid). And we're crystal clear about what we want (no house fires and ten digits).
How to get that data into ChatGPT
The first thing we have to do is consider how to enter the info into ChatGPT. Every meal that I had I formatted in the same way: Meal Title, ingredients, and tag.
Where possible, don’t use text. It can work, but it will result in a LOT of scrolling. But if you do want to use text-only, note how I used consistent formatting to help ChatGPT “digest” the data.
Next, the prompts. You have to plan for being wrong. Over. And over. And over again. For example, my actual initial output was to be randomized meal plans. Had to scrap that: ChatGPT, for whatever reason, is terrible at "random". Like, comically wrong. I also had to re-think my idea of having "tags." For reasons I could never figure out, it kept incorrectly assigning meals for Jack that would have indeed burnt the house down (and a finger short.). But here is where the skill of breaking things down in a methodical way comes into play.
I won't go into the boring details. And I won't go into embarrassing details, but the output was wrong.
Ignore everything that I wrote up until this point, except the part about being wrong over and over again. It's back to the drawing board. Four times back to the drawing board. But in those four tries, I learned exponentially more about interacting with AI and getting the desired outputs. Here are the lessons that I learned:
Set the stage: AI is not human, but it's also not un-human. In my first three iterations, I just dived right into the prompts. I thought of AI as a "dumb" machine, like Alexa or Siri, only capable of inputs done in a specific way. But by the fourth iteration, I gave background: I described who I was (a mom whose responsibility was to do the weekly menus). I told it the issue that I was having (I'm busy and always forget). I wrote the work I had done so far (created a spreadsheet of all the meals and ingredients). And I described what I hoped to accomplish (have ChatGPT output a menu with a list of ingredients). Yes, AI isn't entirely human. But, like us, context helps. ChatGPT is, after all, a Large Language Model. Giving this context allowed my data inputs to be less dependent on precision and more, well... human.
Be "input aware": I revised my approach, and instead of entering data via text, I uploaded a spreadsheet image. This helped for two reasons:
First, despite what I said in "Set the stage," AI is, at heart, a computer. A spreadsheet is the best way to present data because it doesn't have to deal with the messiness of words. It helps me to be precise where I need to be precise: in the data
Second, it helped that I didn't have to scroll up for miles to see what I input. When using ChatGPT, be prepared to scroll. Lots of scrolling from top to bottom. Anything we can do not to have to scroll to see important information is a benefit!
It's not the prompts; it's the data: There has been a lot of talk about "prompt engineering." But ChatGPT is actually pretty good at natural language. Yes, break down your request into smaller pieces to get good results, but that happens naturally. What helped me was understanding that it's the data and then making sure that AI understands it. I've found a spreadsheet to be more foolproof. But a spreadsheet has a hard time conveying, on its own, things such as a timeline. So, it's incumbent on us to make sure that we present the data as simply and clearly as possible. At first, I was annoyed that I couldn't upload a spreadsheet doc to ChatGPT - I had to upload an image of that doc. But that opens up the possibility of breaking out of the "spreadsheet" mode and approaching your sheet more like an infographic. The spreadsheet is the starting point. But get creative with how else you present that data.
Treat AI like it's an idiot: The "tag" issue was the most tricky - after several tries, I realized that I can't just say, "Hey, I have a tag; use it." I have to repeat it differently. So after I uploaded the spreadsheets, I also wrote it out, in plain English: "Only two meals have the "jack" tag (I named the two meals). So when I ask for a 'jack' tag, only select from those meals." There. Done. That was the secret sauce. Spell. It. Out.
And just like that… it worked.
What else ya got?
So now I've got all this "AI Menu-making" knowledge under my belt. What else can I do with this? Make more menus! No, silly! Think like a smarty-pants. Do you know what we just did? We created a "dataset". I feel smart just saying (um, typing) that word. Say "dataset" in a crowded room, and you'll hear glasses clink and then… silence. You, my good wo/man have elevated your status. Bask in the adulation - only you know that "dataset" isn't scary. It's just... stuff. It's information. Information that you took an additional few minutes to categorize. Nothing is frightening about that at all. Whenever I reorganize my junk drawer, I practice "datasetting" (You like that? I just verb-ed a word. ©2023, CMarkward).
So now pretend that you're Neo, and we're at that part in the Matrix where everything turns into "0's" and "1's". Everything around you is a dataset. What else can we do?
My agency has a rate card outlining the prices for various projects, at different tiers. Any time the client requests an estimate for a project, we grab our handy-dandy rate card and start from there. The Account Manager must also generate a preliminary schedule from that rate card. So…
What if we could ask our robot overlord, "Hey, I have a 4-page brochure starting Nov 20. Can you create for me a schedule?" With these mad skills, of course I did. Oh no, she di'int. Oh yes, I did! It's the dataset, baby. We have it. I used it. End of story.
More human than human
The crazy thing about this journey so far is that it's made me a better human. I don't want to be a Pollyanna: yes, in the macro view, AI could destroy civilization as we know it. But here, in the weeds, dealing with it has made me approach things more simply and with more clarity. Just commit to doing it. Give yourself small projects to test it out with. And continue to test and refine. Make it a habit. And this will give you the confidence to use it more and more. You have to make mistakes. There's no way around it. It takes a lot of trial and error. You just have to jump in and do it. Be okay with being wrong, but act like a scientist: log what you did and what happened, and think about why that happened. Then, adjust and try again. Rinse and repeat!
How to make an AI Menu Generator
Enter your data into a spreadsheet that a machine can understand (See screenshot below)
This is an excerpt from my spreadsheet. Instead of “tag” I used the term “level”. I had initially thought that using the word “tag” was what was causing the issue, and I wanted to rule that out as a possible cause.
Using ChatGPT 4, give context. I wrote:
I am a busy mom who is in charge of making up meal plans for my household. Because we are so busy, we don’t really experiment with cooking, instead relying on an inventory of tested and loved recipes. Here are some things to note about us: - We are a busy family that has to juggle some nights where there’s no time to cook because of my son’s extracurricular activities. So we also have meals that are “fast” and we can cook up in a matter of no time. - Also, I want my son to start to learn to cook, so there are some meals that are simple enough for his beginner level. - Every week, I purchase snacks for my son that fall into 3 “levels”: snacks that are healthy, sweet or snacks that he can take to school - Every week, I purchase snacks for myself that fall into 2 levels: snacks that I eat during the day or snacks that I eat at night Every week I have to create a menu along with a list of ingredients. I find this tedious. I created a spreadsheet that has an inventory of all of our meals, along with a list of ingredients and levels labeled.
Give the prompt
I'd like your help in creating meal plans for me. Your first task will be to understand my inventory of meals. I will start by uploading a spreadsheet for dinner meals. The spreadsheet will contain the title of the meal (“Title”), it’s section (“dinner”), a list of ingredients for each meal and a level that will determine whether it is a fast meal (labeled as "fast”), a meal my son can make (labeled as “jack”) or a meal that takes over an hour to make (labeled as "big”). After that, I will upload a spreadsheet for breakfast meals. The spreadsheet will contain the title of the meal (“Title”), it’s section (“breakfast”), and a list of ingredients for each meal. After that, I will upload a spreadsheet for Snacks - Jack meals. The spreadsheet will contain the title of the meal (“Title”), it’s section (“snack - jack”), a list of ingredients for each meal, a level that will determine whether it is a healthy snack (labeled as “healthy”), a school snack(labeled as “school”) or sweet snack (labeled as “sweet”). And finally, I will upload a spreadsheet for Snacks - Char meals. The spreadsheet will contain the title of the meal (“Title”), it’s section (“snack - Char”), a list of ingredients for each meal, a level that will determine whether it is a snack I’ll eat during the day (labeled as “day”), or a snack that I’ll eat at night (labeled as “night”). After that, we'll create a menu. To start, please say GO AHEAD, and I will upload each spreadsheet. After each spreadsheet say GO AHEAD, and I will upload the next spreadsheet. When I am done, I will say FINISHED. At this stage, please do not do anything except confirm that you have saved the meals.
Upload. When complete, be a wo/man of your word and say FINISHED
Next, do a CYA prompt:
I will be asking you to help me prepare menus for the week. But before I do that, I will teach you to understand what the dinner meal levels mean: - Only twelve meals have the “big” level (Chili, Lentil and spicy sausage stew, Alfredo soup, Harira soup, Beef roast/make it a taco, chicken roast/make it a taco, Quinoa taco stuffed peppers, Chicken cauliflower traybake, Homemade pizza, Shepards pie, meatloaf, and Sloppy Joe). So when I ask for a “big” level, only select from those meals.
Do the same for all meals
Sit back and enjoy! Use this prompt to generate menus:
Please give me 4 dinner meals from my inventory of meals. One meal should only have the level “big”, 1 should only have the level “jack” and 2 should only have the level “fast. Also provide a list of ingredients.