7 advanced ChatGPT prompt-writing tips you need to know

OpenAI logo reflected in human eye

We've discussed how to issue effective prompts in previous articles here on ZDNET.

In this article, we're going to take it up a level and look at more advanced AI prompting techniques. We have seven very interesting approaches that will give you a much better handle on how to communicate with ChatGPT and other generative AI tools.

Also: 6 skills you need to become an AI prompt engineer

Here's how to level up your ChatGPT usage.

1. Specify output format

When you ask a question or give an assignment to ChatGPT, you can specify how it formats the reply. Imagine that you're giving an assignment to a student, where you might specify how the assignment is to be formatted when turned in. Here are a few examples.

What are the longest highways in the United States? List only the top four in the form of a bullet list.

Present that information in a table

2. Tell it to format in HTML

You can specify a lot about how the results are displayed. For example, you can have it generate a table which you can incorporate into a web page.

What are the longest highways in the United States? List only the top four. Present the results as HTML.

You can make that HTML bigger by clicking the square in the upper right corner of the screenshot.

Also: The 10 best ChatGPT plugins (and how to make the most of them)

Here's where it's interesting. You can also have that information presented using whatever style of HTML you like. There's a school of web design that doesn't like the traditional table tags, and prefers to present tables in the form of CSS. Here's that version.

Present that information, but use CSS instead of table tags

3. Iterate with multiple attempts

You often need to work with the AI to help it get to the result you want. Take our previous CSS result. Here's what it looks like:

Unfortunately, that's not as pretty as I'd like. Let's see if we can remedy it.

Redo that, but please make sure the columns are all aligned. Make the headings a darker blue with white lettering presented in all capitals and bold. Make each data row a light gray, but vary the levels of gray so row 1 is light gray, row 2 is slightly darker, row 3 is light gray, and so on. Make sure the highway name is presented in bold.

I'm not going to include the generated code, because it's long. But we're getting closer:

Let's try again.

That output looks really good, but the columns are still not aligned. Make sure the columns are wide enough to accommodate the text without wrapping, left align everything, and make sure all the columns (including the headings) are perfectly aligned.

It's almost exactly what we're looking for, but the route is wrapping. Let's see if we can fix that.

That's almost exactly what I want, but the route is wrapping. Please make sure the route data doesn't wrap either. Keep each line of data on exactly one line.

Don't ever assume this is easy. But if you've ever taught programming to humans, this is exactly the sort of result you get back. It sometimes seems like they're being passive-aggressive, but it's more likely that you didn't specify your requirements carefully enough.

4. Don't be afraid to use long prompts or sets of prompts

It took quite a few iterations to put together a prompt that reliably generated highway information in the format I wanted. One key approach is to make sure your prompt is very specific, but also extensive enough to have enough information for the large language model to fully understand what you're asking.

Also: Microsoft unveils first professional certificate for generative AI skills

You may also need to modify your specification. I wound up removing the line:

Create a table that uses only CSS to format the rows, columns, and cells. Do not use HTML table tags.

Instead, I just told it how I wanted the table to look and let it decide how to implement it. Here's my full, rather long prompt:

I wrote that prompt in Sublime Text, a text editor, and then pasted it into ChatGPT. Here's the result, which is exactly what I wanted.

As you can see, it chose to add a title, which was fine. But now that I have a working prompt, I can add some additional tweaks. For example, I went back and modified the columns specifier:

Create columns for the index number (label this "#"), highway name, length, and route

I tried changing "Limit your answer to only the top four" to "Limit your answer to only the top 20" but the AI refused to fill in all the data for all 20. So I removed that line entirely and added a new line at the very end of the prompt:

For the purpose of this project, please provide full data results for the top 20 highways.

This actually resulted in a partial HTML output. I had to tell the AI to continue, at which point it spit out the rest of the HTML, resulting in this:

5. Provide explicit constraints to a response

You just saw how I modified some response constraints for the number of answers and the columns I wanted presented. But you can use constraints for more open-ended questions as well.

Also: Human or bot? This Turing test game puts your AI-spotting skills to the test

There are limits to this type of prompt. For example, take this prompt:

Provide a summary of the key events in World War II as reported by major newspapers of the time.

Because the model wasn't trained on newspapers from World War II, it's unable to answer the question (although it does take a guess).

Likewise, you can't specify any results from "the last few years" since the model's data entry ends in 2021. That said, you can specify data that's within the scope of the model, like this:

List major space missions between 2010 and 2020

Note that we're limiting by date. But we can add further constraints. Let's limit to just those from the US:

List major space missions conducted by NASA between 2010 and 2020

You can also go back to the formatting approach we discussed and do something like this:

List all major space missions conducted between 2010 and 2020. Group them by nation and space agency. Make the name of the nation and space agency bold.

And you can get even more explicit. Here we include continents and specify that any continents without missions be excluded from the list.

List all major space missions conducted between 2010 and 2020. Group them by continent. Make the name of the continent bold and all capital letters. Make the nation and space agency name bold, with either title case or all caps if that's how the space agency formats its name (like NASA). If a continent did not have a space mission, do not include it on this list.

Interestingly, the AI decided to have a bit of a hallucinatory moment. It properly listed the missions and continents, but decided Russia is a continent. I ran it in a second session, and that time it did not think Russia was a continent.

6. Tell it number of words, sentences, characters

Speaking of constraints, you may have noticed that ChatGPT tends not to be accurate when it comes to word count. If you tell it to limit its answer to 50 words, it sometimes goes long or short. That's because the language model works in tokens (representations of data) that do not directly correspond to individual words.

Also: This AI chatbot sums up PDFs and answers your questions about them

For example, when I told ChatGPT to "Summarize the Game of Thrones TV show," I got back 294 words over six paragraphs. But you can try to limit the response. Try out a variety of limiting terms until you determine what works best for you. For example:

Summarize the Game of Thrones TV series in 50 words

Summarize the Game of Thrones TV series in 2 sentences

Summarize the Game of Thrones TV series in less than 200 characters

Summarize the Game of Thrones TV series so it will fit in a tweet

Here's another place to keep in mind the restrictions of the AI model. ChatGPT contains no training data after 2021. At that time, a tweet was limited to 280 characters. But as of February 2023, Twitter Blue subscribers can have tweets as long as 4,000 characters. Telling ChatGPT to fit something in a tweet tells it to limit the response to 280 characters, because that was the sole limit back in its day.

7. Give the AI the opportunity to evaluate its answers

As we've often discussed, the AI often "hallucinates," providing very wrong answers. It is possible to construct conversations with the AI to arrive at more precise answers, by letting it provide intermediate conclusions. Take this simple request:

Word similar to devolve that begins with a B

As difficult as it might be to imagine, ChatGPT reliably fails with this request, often answering decay, degrade, degenerate and other words that begin with a "D".

There are a couple of challenges with this deceptively simple prompt. First, "devolve" has multiple meanings. It can mean transfer or delegate, deteriorate or decline, or inherit or receive by succession. To get a proper answer, we need to be more specific and give it the general meaning we want it to pursue. It also doesn't hurt to help it determine meaning by telling it we're looking for a verb, rather than a noun.

Generate a verb that starts with the letter "B" and has a similar meaning to "devolve," specifically indicating the idea of something deteriorating or getting worse.

The problem is, ChatGPT has a very difficult time (again, due to how it represents knowledge in tokens) of determining the first letter of a word. So it's best to give the AI time to figure that out.

Determine the first letter of the generated verb

This is what AI experts call "giving it time to breathe". Rather than just rushing out with its first answer, this approach gives the AI time to consider whether its answer is correct.

Also: The best AI art generators

Because the AI may not come up with the right answer the first time, ask it to repeat the steps until it does:

And here, it works its way through until it finds an answer:

Notice how it took the AI six tries before it found the right word, even though the criteria existed for the entire sequence. The second double-check "breathe" gave it the opportunity to evaluate its answer and continue until it succeeded.

Final thoughts

One thing that's really important to note is that the AI won't necessarily do what you want right out of the gate. On the last example, it took me almost two hours and about 20 tries to find the formula that actually worked for it to reliably generate a result.

Also: How I used ChatGPT and AI art tools to launch my Etsy business fast

While we're at it, keep in mind that the AI remembers what went on in the current session. So while it might give you the right answer in the current session, the acid test is copying your prompt to a brand new session and seeing if it works there.

Stay tuned, because not only will I be back with more advanced prompt tips, I'll also be doing some deeper dives into individual prompting problem solvers.

You can follow my day-to-day project updates on social media. Be sure to follow me on Twitter at @DavidGewirtz, on Facebook at Facebook.com/DavidGewirtz, on Instagram at Instagram.com/DavidGewirtz, and on YouTube at YouTube.com/DavidGewirtzTV.

Featured

Follow us on Twitter, Facebook
0 0 votes
Article Rating
Subscribe
Notify of
guest
0 comments
Oldest
New Most Voted
Inline Feedbacks
View all comments

Latest stories

You might also like...