Hello.
I would like to know about “state management (stateful or not)” when each API is given multiple operations.
Also, is it possible to control its refresh?
Furthermore, How about the state when the same API account is used by multiple users?
If you want to build an application using the OpenAI API @shiraishi.takahiro which manages state based on a user session, you need to develop your session management code on top of the OpenAI API.
The OpenAI API does not provide any session management service.
However, if you wait a bit the “hopefully soon to be released” ChatGPT API may (or many not) have some session management features.
I concur this is a very important feature, it is a show stopper for some projects require chat /dialog like interaction. “you need to develop your session management code”, even dev is able to do son, there no way to pass an session identifier /user id (user parameter is use for abuse detection only) as API parameter to track a dialog thread in a multiple users (using same API key) environment.
Thank you for everyone.
I understand The API does not have any state.
sorry, I have the next question.
we are executing by POSTing by API_Key (token), but can we execute as POST of another user even though the API Key is the same?
Yes, you can specify in all OpenAI API competition calls a “user” which you can use to track actions related to that user, but as mentioned,
OpenAI Safety and Best Practices
Sending end-user IDs in your requests can be a useful tool to help OpenAI monitor and detect abuse. This allows OpenAI to provide your team with more actionable feedback in the event that we detect any policy violations in your application.
However, just because the user param on the OpenAI server / service side of the transaction is only used for abuse monitoring by OpenAI, you can still use the userid / name to manage state on your end.
For example, you can have a database where you store each prompt and completion and you can assign those to a userid.
Even though the current OpenAI API is “stateless”, you can still manage the session and the state in your applications.
I already do this with my OpenAI Rails apps and for all transactions I store the transactions in a DB along with the user and when I create a new topic, I assign that topic an topic id, assign it to a user, etc.
It’s all pretty basic stuff, really, if you have experience with stateless API endpoints.
Do not worry, at least you know your own programming experience and limitations.
We see a lot of people here who mistakenly expect that they can just make a few API calls and don’t have to write any code to actual build an application using the API.
Or even worse, folks who have little to no software dev experience and also mistakenly think ChatGPT will write “excellent” full applications for them.
I have exactly same concern that Kyau had. Multiple end users access my web app which has only one API key connect to open AI server. How to let each user get their own subsequent questions in period of time get answered without being mixed up with other users’ questions. This is a fairly typical use case for most of web apps. Without dynamic created session, the web app is not scalable.