I am trying to pass my assistant to the OpenAI Assistants API, but I get the following error when doing so:
message: 'The model
my Model IDdoes not exist or you do not have access to it.', type: 'invalid_request_error', param: null, code: 'model_not_found'
Code:
try {
const fetch = await import('node-fetch').then(mod => mod.default);
const response = await fetch('https://api.openai.com/v1/chat/completions', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${apiKey}`
},
body: JSON.stringify({
model: 'My model ID',
messages: conversation
})
});
}
If I change the model parameter to gpt-3.5-turbo it works, and my app can interface with the standard model.
I know the API key is correct and it has all permissions. The assistant ID I'm trying to pass to the model parameter is also correct. For testing purposes, both are defined in the same file.
The OpenAI Assistants API doesn't use the Chat Completions API endpoint (i.e., https://api.openai.com/v1/chat/completions). Using the OpenAI Assistants API is fundamentally different (i.e., more complex) than using any other APIs, like the Completions API or Chat Completions API.
You don't pass the assistant by using the model parameter. You pass the assistant by using the assistant_id parameter (see Step 4 below).
Here are the steps you need to follow to get a response from the assistant:
Step 1: Create an assistant
POST https://api.openai.com/v1/assistants
Step 2: Create a thread
POST https://api.openai.com/v1/threads
Step 3: Add the user's question to the thread
POST https://api.openai.com/v1/threads/{thread_id}/messages
Step 4: Run the assistant
POST https://api.openai.com/v1/threads/{thread_id}/runs
Step 5: Periodically retrieve the run to check its status to see if it has moved to completed
GET https://api.openai.com/v1/threads/{thread_id}/runs/{run_id}
Step 6: Retrieve the assistant's answer
GET https://api.openai.com/v1/threads/{thread_id}/messages
Also, I've made a YouTube tutorial on how to use the Assistants API and posted the code on my GitHub profile.