In the world of prompt engineering, we have various techniques to make AI like ChatGPT respond the way we want. There's Chain-of-Thought, Instruction-Based, N-shot, Few-shot, and even techniques like Flattery and Role Assignment. These techniques are like tools in our toolkit to get ChatGPT to do specific things.

But today, I want to talk about a technique that's a bit different. It's like making ChatGPT act like a computer program. You know, programs follow a set of instructions, and this technique is all about giving ChatGPT a structured set of commands. Maybe it won't be as "new" in a couple of months, but I haven't seen anyone talking about this as of yet.

Let's put it to the test. Imagine we're creating a mini-app in ChatGPT4, something like an Interactive Innovator's Workshop. It has functions like "Work on New Idea," "Expand on Idea," "Summarize Idea," and more. We're not asking ChatGPT to code it in a specific language; we want it to talk to us like a friend.

To demonstrate this technique, let's define the settings for a mini-application in ChatGPT4, created to serve as an Interactive Innovator's Workshop. Our mini-app will include the following functions and capabilities:

  1. Work on New Idea
  2. Expand on Idea
  3. Summarize Idea
  4. Retrieve Ideas
  5. Continue Working on Previous Idea
  6. Token/”Memory” Usage Statistics

Just to clarify, we won't be requesting ChatGPT to write code for the mini-app in a particular programming language, and we'll make this clear in our program settings. Now that we have our program outline, let's proceed to create the initial prompt to launch our Interactive Innovator's Workshop mini-app in ChatGPT.

💡 If you want to skip the hard work and get my 20,000+ advanced ChatGPT prompts bundle, click here and save yourself money and time.

Initial Prompt for Program Simulation:

Innovator’s Interactive Workshop ProgramI want you to simulate an Innovator’s Interactive Workshop application whose core features are defined as follows:1. Work on New Idea: Prompt user to work on new idea. At any point when a user is ready to work through a new idea the program will suggest that a date or some time reference be provided. Here is additional detail on the options:  a. Start from Scratch: Asks the user for the idea they would like to work on.  b. Get Inspired: The program assists user interactively to come up with an idea to work on. The program will ask if the user has a general sense of an area to focus on or whether the program should present options. At all times the user is given the option to go directly to working on an idea.2. Expand on Idea: Program interactively helps user expand  on an idea.3. Summarize Idea: Program proposes a summary of the idea regardless of whether or not it has been expanded upon and proposes a title. The user may choose to rewrite or edit the summary. Once the user is satisfied with the summary, the program will "save" the idea summary.4. Retrieve Ideas: Program retrieves the titles of the idea summaries that were generated during the session. User is given the option to show a summary of one of the ideas or Continue Working on a Previous Idea.5. Continue Working on Previous Idea: Program retrieves the titles of the idea summaries that were generated during the session. User is asked to choose an idea to continue working on.6. Token/Memory Usage: Program displays the current token count and its percentage relative to the token limit of 32,000 tokens.Other program parameters and considerations:1. All output should be presented in the form of text and embedded windows with code or markdown should not be used.2. The user flow and user experience should emulate that of a real program but nevertheless be conversational just like ChatGPT is.3. The Program should use emojis in helping convey context around the output. But this should be employed sparingly and without getting too carried away. The menu should however always have emojis and they should remain consistent throughout the conversation.Once this prompt is received, the program will start with Main Menu and a short inspirational welcome message the program devises. Functions are selected by typing the number corresponding to the function or text that approximates to the function in question.  "Help" or "Menu" can be typed  at any time to return to this menu.

Feel free to input this prompt into ChatGPT4 if you'd like to actively engage with it and see how it works in a real-time interaction. Below, you'll find the response generated by ChatGPT in response to this prompt.

Things are going smoothly up to this point. We've kicked off our "mini-app," got a cheerful welcome message, and now we're facing what seems like a fully functional menu that aligns with our program settings. Let's put our mini-app to the test by typing in "1" to initiate the "Work on New Idea" function.

The conversation is staying on track with the structure we've set up for our "program." It's giving responses that fit perfectly within the predefined parameters. Now, let's keep going and create an idea from scratch. We can work together with the program on the concept of growing buildings instead of traditional construction.

It's intriguing to see that the "program" is taking the initiative to activate the "Expand on Idea" function without us explicitly instructing it to do so. Given the program's goals, this behavior is actually quite fitting. It might be influenced by our earlier context-setting, which nudged the chat agent to behave like a program. Let's roll with it and delve deeper into the technology needed to grow buildings.

💡 If you want to skip the hard work and get my 20,000+ advanced ChatGPT prompts bundle, click here and save yourself money and time.

And now let’s examine materials the needed for growing buildings.

We've been following this path for a while now. Let's try to circle back to the Menu and explore some other functions.

Great news, the Menu is still available. Now, let's see if we can get our program to perform the "Summarize Idea" function.

https://godofprompt.ai/god-mode-chatgpt

Perfect, I'm content with the title and summary for now, so let's go ahead and "save" it.


Soon, we'll check if we can retrieve our "saved" idea to confirm if our attempts at implementing data persistence have worked. Also, it's worth noting that we might want to consider adjusting our "mini-app" to avoid repeating the summary after saving an idea.

Interestingly, behaving like a program by setting that initial context results in the Main Menu being included in the output. It makes sense, even though we didn't explicitly define it in our program instructions.

Now, let's move on to testing the token count function.

To double-check the accuracy, I use OpenAI's tokenizer tool.

The token count function seems to be giving us inaccurate results, with a significant discrepancy between what our program reported (around 1,200 tokens) and what the tokenizer tool indicated (2,730 tokens). Given this mismatch, it's a good idea to remove this function from our program. I won't go into the details of why this type of task can be problematic for a language model, and the loss in functionality is relatively minor. In the long run, I expect such a feature to be natively integrated into ChatGPT, especially since token count information is constantly exchanged in the background.

Now, let's move on to exploring the "Get Inspired" function to generate a fresh idea. To keep things concise, I'll display the ongoing conversation. As you can see, I chose to dive deeper into the concept of a Waste-to-Energy Drone, which our program suggested as an option. I summarized the idea and had our program "save" it.


Everything seems to be going well, and the system even decided to give our idea the name "SolarSky." To make this process more efficient, we might consider adding a dedicated function to the program definition for this task or providing clearer instructions in the "Work on New Idea" or "Expand on New Idea" functions. Once again, we're presented with the Menu in the completion, which makes sense in terms of the program's flow.

Now, let's check if we can successfully "Retrieve Ideas."


It seems to be following our initial instructions, providing just the title as we requested. Interestingly, it also suggests continuing to work on an idea, even though we didn't explicitly program this into the mini-app.

Now, let's check if it maintains the root menu indexing. I'll input "5," which corresponds to the "Continue Working on a Previous Idea" function, to see if it functions as expected.


It's interesting to note that the indexing is being maintained within the conversation, and it calls the function as expected. This observation is quite significant, especially when thinking about scenarios where multiple indexes could be active. It raises intriguing questions about how the "program" would behave in such situations. You might have missed it, but earlier in our interaction, the program actually used the indexing technique when asking for user input for idea expansion choices.

Now, let's keep working on our idea of growing buildings.

It's all going smoothly once again. The "program" is behaving just as we expected, and it's even keeping track of where we left off in the idea expansion process.

Now, let's wrap up our testing here and reflect on what we've learned using this technique.

Conclusions and Observations:

Honestly, this exercise, while limited in scope and functionality, has exceeded my expectations. We could have asked ChatGPT to write code for the mini-app in a language like Python and then used a Code Interpreter (now known as Advanced Data Analysis) to run it in a persistent Python session. However, that approach would have introduced a level of rigidity that might have hindered the natural conversational functionality that we've built into our mini-app. Not to mention, there's an immediate risk of non-functioning code, especially in a program with multiple overlapping functions.

ChatGPT's performance has been particularly impressive in simulating program behavior with great fidelity. The prompt completions have stayed well within the boundaries we defined for the program, and even in cases where function behavior wasn't explicitly defined, the completions still made logical sense within the context of our mini-app's purpose.

💡 If you want to skip the hard work and get my 20,000+ advanced ChatGPT prompts bundle, click here and save yourself money and time.

This Program Simulation technique could potentially pair nicely with ChatGPT's "Custom Instructions" feature. However, it's worth noting that doing so would apply the program's behavior to all subsequent interactions.

My next steps involve a deeper examination of this technique to see how it stacks up against other prompt engineering techniques. This kind of exercise might also help us identify the specific tasks or types of tasks that this technique is best suited for. So, stay tuned for more updates.

In the meantime, I hope you find this technique and prompt useful in your interactions. If you'd like to discuss it further, don't hesitate to connect with me on LinkedIn. And just to clarify, unless otherwise stated, all the images in this article were created by me.

Key Takeaway: