After playing with the APIs, it seems there's something annoying happening with the terminology right now. "ChatGPT" and "davinci-003" aren't equivalent, but it isn't entirely clear how.
The biggest difference is that ChatGPT can remember earlier parts of our "conversation", davinci can't. I suspect that this is just the result of the interface, that it is being presented with our conversation history has an input. However, I haven't found anywhere that actually makes it clear how this aspect works. Can anybody shed some light?
To make it with davinci-003 you can store all the conversation history and prefix it to your prompt as you mentioned. It does mean that you're limited to a history of about 3.5k words, which you could summarize into a smaller chunk to help make the conversations longer. I have a basic Python demo using davinci-003 for a chatbot that remembers:
If you copy the past queries in davinci's current input, such as prefixing lines with Q: A: or -, it could understand when it was its turn, and when it was yours.
The biggest difference is that ChatGPT can remember earlier parts of our "conversation", davinci can't. I suspect that this is just the result of the interface, that it is being presented with our conversation history has an input. However, I haven't found anywhere that actually makes it clear how this aspect works. Can anybody shed some light?