Reframing AI APIs: From Chat to Assistant
The "chat" part of Chat APIs is the least exciting thing about them...
OpenAI started in 2015 and has released several products based on their research over time. However, it is only when they released ChatGPT - transforming AI into a chat interface that they unexpectedly got their success (the reason I say unexpectedly is b/c AI chat interfaces haven’t been that successful in the past - think of how horrible / annoying / useless the AI customer service bots are on websites…).
So when OpenAI released their Chat API, there were many developers who rushed to create ChatGPT wrappers for mobile only to later be sherlocked by ChatGPT themselves releasing their own official app. Some apps such as Snapchat, Duolingo, and now WhatsAPP (MetaAI) etc introduced AI chat into their apps.
But honestly, I’m not sure the chat interface can fully succeed on mobile in the same way. For example, I personally don’t even have the ChatGPT app installed on my phone b/c it is useless to me in that form - the way I use it is by copying / pasting my code / documents / things I’m reading for long-form content, which just doesn’t work as well on mobile. I’m sure there can be examples of apps where chat could be successful - maybe in a Siri-like interaction for quick information, but I’m not convinced that chat is the right thing for most apps.
This is why I think the Chat API terminology is very misleading for what integrating this API actually is and can do for your app. I remember how surprised and impressed I was the first time I worked with @vatsal_manot to integrate the “chat API” into an app I was building - with 0 actual chat functionality. As I keep working and building more projects with AI APIs, it’s become clear that when I reframe the “chat” into an “assistant” it is much easier to work with it consistently. In fact, even OpenAI is reframing it in the same way by creating a new (still in Beta) Assistants API.
So what do I mean by this? In the apps I’m working on, I don’t allow the user to ever interact with the OpenAI API directly (especially not in any chat interface). Instead, I make my own “one-off” calls to OpenAI to augment my app.
For example, let’s say you’re building a dieting app where a user takes a photo of their food and the amount of calories for the food is given. In that case - the user will take the photo of the food, and then I will send the picture to OpenAI’s “Chat” API asking how many calories are in this food in a very specific way. I will then directly display the data to the user. So instead of any chatbot, OpenAI’s Chat API is used by me as a “calorie identifying assistant” with only one task.
Once you reframe your thinking about what “Chat” APIs actually are - away from chat interfaces and into powerful assistants who have access to all the data from the internet - it doesn’t make sense NOT to use them!