Ali Zaini

ChatGPT

AI

Programming

ChatGPT


March 11, 2023



Everyone is familiar with OpenAI's ChatGPT and has seen the many cool demos of what it can do. Some of my favourites include simulating a a Linux terminal (virtual machines and databases too) and jailbreaking ChatGPT to do illegal things.

Reading back through my blog last year about GitHub Copilot, it's amazing to see how much this sort of technology has developed and it's radically changed my opinion on the impact AI like this will have.

After that blog post, I started playing around with the GPT-3 Playground and ended up building a few projects with it. The first was just to see what kinds of useful applications could actually be built with it and how it would be possible to work with the outputs because they are just strings. That required some playing around with GPT-3 and seeing what prompts generated useful outputs. For example, if I gave it the format I wanted for the top 5 lists, it meant I could parse the results more easily and then render them as a properly formatted list. The same goes for the travel planner demo.

That experience made me think about how important it is to have good prompts. Certain prompts could be so good that someone might consider paying for them. This led me to consider the idea of "prompt engineering," which has since become a more popular topic. I then created "Prompter" as a demo of how a prompt templating and sharing website could work. I left the project at that but have found a couple of similar ideas out there that validate the idea 2 3. Funnily enough, you can now use ChatGPT to generate prompts for other AIs!

The big difference between Copilot and GPT-3 for me is that I actually use ChatGPT. It's incredibly quick and produces better results and uses previous messages to provide context to its responses. This means I can use a single conversation while working on developing a site, and it will reuse previous information in the code it generates. For example, I used it to generate a database schema and then, whenever I asked it to create functions, type definitions, or create a seed file, it did it (nearly) flawlessly. I'm even using it to help write this post.

I've also found it saving me time from Googling. I can just paste in errors and get suggests to fix this. I also use it generate a lot of boilerplate or starter code. I have had issues with the fact that it's not always up to date and doesn't have access to the internet, such as incorrect Prisma commands because it's using deprecated documentation.

I haven't thoroughly used the Bing implementation, but I find it cool how it provides sources for its claims and that it actually has access to the internet. However, my short experience with using it for coding made me want to stick to normal ChatGPT.

I'm super excited about the future of this technology and its potential usefulness at work. It can assist with tasks such as writing documentation, tests, and general development and debugging.

Here are my predictions for the next few years:

  • Companies will have personal AIs that have studied their entire codebases to develop code and help with tasks such as documentation, testing, and PR reviews.
  • Google search will undergo massive changes. I'm not sure if it will become more conversational like Bing or ChatGPT, but something has to change.
  • AI will become a more commonplace tool in everyday life. People will use it for communication (instant messaging, email), work, and even creative endeavors such as art, shows, and books. Maybe we'll see a hit movie or book written by an AI.
  • There will be really awful uses of AI for disinformation, politics, spam, and within companies, which will lead to unexpected and harsh outcomes. I can see some jobs undergoing radical changes.
  • Prompt engineering will become a sought-after skill, similar to SQL or Excel. It won't be necessary to be an expert like in a programming language, but people will be expected to know how to communicate with an AI to produce good outputs.

References

Some projects I made with GPT-3 (not maintained):