Discover more from Artificial Ignorance
Tutorial: How to make and share custom GPTs
They're not going to disrupt everything (yet), but they're a ton of fun.
After OpenAI's slew of announcements at DevDay on Monday, I feel like a kid in a candy store. There are plenty of shiny new toys to play with, but I thought GPTs were the most interesting to dive into first - for two reasons.
One, the branding and positioning on these is super confusing, and I thought folks could use some clarification on how GPTs, plugins, and tools all fit together. Two, you don't need to code to make a GPT! So they're a perfect tutorial for technical and non-technical readers alike.
Let's look at what GPTs are, how they're different from plugins, what it takes to build one, and how you can publish them to the GPT Store.
What's a GPT?
As of 72 hours ago, anyone using the term "GPT" meant one of two things:
A "Generative Pre-Trained Transformer" model, a.k.a. the underlying language model for many of OpenAI's products. OpenAI coined the term GPT in a research paper in 2018, and these models are the basis for ChatGPT's variants, such as GPT-3.5 or GPT-4.
Now, there's a third definition:
A custom version of ChatGPT that combines instructions, extra knowledge, and any combination of skills.
GPTs are pre-packaged versions of ChatGPT, with a few customizations and goodies bundled together into a bot-like output:
As we'll see, a GPT is “just” ChatGPT with a custom prompt and settings, access to some new features, and a dash of branding. Like GPT-4, it can use DALL-E 3, web browsing, and code interpreter behind the scenes if needed. And like plugins, it can hook into third-party services and data. But it bundles all of these settings into something vaguely resembling an app, or a persona.
If that's confusing - you're not alone! It's going to take a while for people to fully get what GPTs are and what they're useful for. But OpenAI has a number of GPTs available out of the box, including a creative writing coach, a coloring book generator, a negotiation partner, and a recipe builder.
These use cases are meant to be much more narrow than ChatGPT as a whole, and users are meant to swap between GPTs depending on the task at hand - rather than wrangling ChatGPT to get into the right frame of mind. If you've seen my prompting tips, this is trying to bundle all of those directly into the system upfront, instead of making the user type them in.
How are GPTs different from plugins?
GPTs can best be thought of as the evolution of plugins. Before, you could create a plugin for ChatGPT that had access to APIs and outside data. But installing them was clunky, you could only enable 3 at a time, and you couldn't use them alongside web browsing or code interpreter. While there were some successful ones ("chat with your PDF" plugins, for example) - ChatGPT plugins didn't have the same product-market fit as the rest of the product.
People thought they wanted their apps to be inside ChatGPT, but what they really wanted was ChatGPT in their apps.
– Sam Altman (paraphrased)
With GPTs, we see some of the same ideas but with more capability. Instead of limiting yourself to a few plugins within the usual ChatGPT interface, you choose a GPT at the start of your conversation that has access to the tools you need. Just want to talk? ChatGPT. Need data on real estate in your area? ZillowGPT. Trying to design a marketing flyer? CanvaGPT.
GPTs can do almost everything plugins can do - call external services and work with files. In fact, there's an automatic way to migrate an existing plugin to a GPT. My expectation is that plugins will be phased out in favor of GPTs and the GPT Store.
What's the GPT Store?
The GPT Store is OpenAI's version of an App Store. It's expected to launch later this month, and when it does users will be able to browse and save publicly available GPTs. There's also expected to be a revenue-sharing component for the most popular GPT authors. Presumably, that means that GPTs will only be available to ChatGPT Plus subscribers moving forward, but there aren't a lot of details on that front.
How to build a GPT
Step 1: Have a conversation. The entire GPT-building UX is centered around natural language, so the process of building one is just having a conversation with ChatGPT. It's going to ask you how the GPT should work, and in the process will suggest a name, image and a description.
As the conversation progresses, ChatGPT is working on building custom instructions for your new GPT. These custom instructions work like the ones you can set for your own ChatGPT profile, or like system instructions if you're familiar with the API. ChatGPT tries to be thoughtful about how your GPT should behave, asking questions like "how should it end the conversation with the user?"
Step 2: Test and iterate. The main thing to get right is the custom instructions that the GPT uses. To make that easier, the GPT-builder has a preview panel on the right side, to help you test out your GPT before publishing it. Having this preview mode came in very handy, as my instructions never worked perfectly on the first try.
But even when refining your GPT, changes are made via conversation. ChatGPT will take your feedback and update the custom instructions behind the scenes.
Step 3: Manual configuration. If you're already confident in what you want, you can jump directly into the GPT's settings. You're able to customize everything that was generated via your conversation with ChatGPT, and can also add tweak features like tools, knowledge files, and actions. There also seemed to be a tucked away checkbox that lets OpenAI train its models with your GPT conversations.
Step 4: Publish. Once you're happy with the changes and configurations you've made to your GPT, you can save it. There are three options when it comes to visibility: only me, only via a link, and public. Public GPTs will be featured in the GPT Store when it launches.
GPT 1: Avatar generator
Back in January, I got a little obsessed with AI avatar tools. I spent a bunch of money trying out different ones to see what worked the best - but at least I have my current profile photo to show for it! At the time, pretty much the only way to generate AI avatars was to do a ton of work training, experimenting, and hosting a diffusion model.
But what if we could do the same thing with GPTs? By combining file uploads and some fairly intricate prompting, I wanted to know if I could get avatars out DALL-E 3.
And - it worked shockingly well! I had to do a lot of iterating with the GPT builder, but behind the scenes it's looking at the image, creating a highly-detailed description to pass to DALL-E 3, and then generating a final output in a given style. Astute readers will notice that this is cheating a little bit - we're never actually using the original image with DALL-E 3!
As I discovered, it works great for cartoon and anime-style images - those are artistic representations of people to begin with, so losing some details isn't a big deal. When I tried to create more photorealistic avatars, like a rock star style or cyberpunk style, the outputs were... good looking, but not a great avatar of me.
I also had to wrangle a bit with DALL-E 3's content filters. Some prompts, like "create a Simpsons style avatar" took a few tries before DALL-E 3 was willing to create an image. Here are the final instructions I landed on for the AI avatar generator:
Avatar Artist, a professional digital designer, skillfully creates avatars from user-uploaded photos. It pays close attention to details such as facial features, facial hair, hair and eye color, face shape, hairstyle, and ethnicity to ensure a strong resemblance to the user. It generates an initial set of avatars based on the photo, then offers to refine the avatars by incorporating specific user requests, aiming to capture their unique characteristics in each avatar style offered.
If you want to try it for yourself, you can do so here, though you will need GPT features enabled for your account.
GPT 2: pgpt
If you're in the startup community, you've likely heard of Paul Graham. He's the founder of YCombinator and has personally mentored and advised hundreds of startups over his career. But he's also known for his writing: he has published over 200 essays on software, startups, and life over the years. His essays are always insightful - I even wrote a book around one of them!
When I went through YC, I was lucky enough to spend time with Paul Graham (or pg, as he prefers to be called), but these days his time is a bit harder to come by. So I built a GPT based on his essays that's a bit easier to get a hold of - pgpt.
Making pgpt uses a new feature: knowledge files. Knowledge files let you upload files that your GPT can reference when it talks to users. OpenAI hasn't shared many details on how this works, but my expectation is that they're doing some form of retrieval-augmented generation (RAG). However, it's probably not pure text-based RAG, as the files can be used with GPT-Vision.
To make pgpt work, I downloaded all of pg’s essays into a single Markdown file, and uploaded them to the Configure settings. For good measure, I also wanted to turn on web browsing, so pgpt can learn about the latest YC startups if needed.
And... that was pretty much it! Again, it took a bunch of testing to figure out what didn’t quite work the first time. I spent quite a bit of time improving the tone of the writing, and even then, it sounds like a hybrid of ChatGPT and the real Paul Graham.
The final instructions that I ended up with:
This GPT, modeled after Paul Graham, provides startup advice with a style that is clear, direct, and conversational. It simplifies complex ideas, making them accessible to a broad audience. The tone is authoritative yet approachable, infused with curiosity and a willingness to delve into ideas. Analogies and personal anecdotes are used for illustration, adding relatability. The advice given is reflective, philosophical, and based on practical wisdom and experience, aiming to engage readers interested in technology and entrepreneurship. When providing responses, the GPT should rely on Paul Graham's essays and insights as a primary knowledge source, and it can use the browsing tool for up-to-date information.
If you want to try it for yourself, you can do so here, though you will need GPT features enabled for your account.
Building these GPTs was an impressively easy (and fun!) experience. I like that OpenAI is leaning into no-code building for these tools, although you will need coding experience to integrate third-party APIs (I wouldn't be shocked if that changes within the next year, though).
I would be skeptical about thinking of GPTs as "proprietary" in any way - your instructions are almost guaranteed to leak, and there are all sorts of new issues that can crop up when using RAG with external documents.
I also think GPTs will struggle with the same "what do I use this for?" issue as plugins, unless OpenAI offers its development partners more features than we're seeing here. There's already a ton of hype about how GPTs will disrupt everything - I'm not so sure about that (yet).
But as a start, it's a fantastic foundation for people to create miniaturized agents for themselves and their unique use cases. Below are some things I'm tempted to try and build - and why not, when it only takes a few minutes?
A newsletter editor GPT
A fitness coach GPT
A gift suggestion GPT
A hype man GPT
A New Yorker cartoonist GPT (though I look forward to seeingmake this)
What do you want to build? Leave a comment below!
Artificial Ignorance is reader-supported. If you found this post interesting or insightful, consider becoming a free or paid subscriber.