Sharing Assistants with other API Keys outside org

Is it possible to share a specific Assistant with API Keys outside your org? Meaning we have software that integrates the Assistants API, and we have a single Assistant defined in the dashboard. We would like users of the software to be able to interact with the Assistant. That can be done if we use our own API Key, but that means we are paying for each user’s interactions, and we would need to setup some backend proxy to safeguard the API Key.

I have seen older threads where the answer is “no”, but since the API is still Beta perhaps things have changed or changes are planned. If it’s not possible, and will not be possible, then what are some recommended alternatives?

CREATE ASSISTANT IN THE SOFTWARE
An Assistant is basically defined by Instructions, Files, Model and Functions. I really like how we can tweak the Assistant in the dashboard without having to update the software, but I suppose we could modify the software to re-create the assistant with the user’s API Key: set the Instructions, Model, define the Functions and upload the Files.

While this should work, it does mean “publicizing” all your functions and files, since this assistant would show up in the Platform dashboard for any user.

COMPLETIONS API
We’ve been using the Assistants API because of how easy it is to define Functions and upload Files, and it just works. The concepts of Threads and Runs are great as well. Is it possible get this in the completions API, and an overview?

Can you make an assistant with a single script that uploads files, attaches them to a vector store, attaches the vector store to a new assistant that has instructions and other parameters?

Yes.

Can you share the files and the script with another?

Yes.

OpenAI doens’t even charge to run embeddings on the documents again.


The completions endpoint is for direct interactions with the language generation model, where you maintain the chat of a “thread”, and all the tools are your own that you have created.

Yes, I see that we can recreate the Assistant from scratch in each user’s OpenAI account.

However, can you share file IDs or or the vector store IDs that are in your own storage? If not, this means that the files must be distributed with the software (or otherwise effectively accessible to the user) and uploaded to the user’s own OpenAI storage.