Sorry for my lack of knowledge. I have successfully updated my code with a helpful response earlier today. I am now successfully sending messages to my assistant(I think). I don’t see my test message in the createAndRun() functions data but I don’t see it in the documentation either. I am getting a 200 code and status complete. The message object is being returned but I am not getting the message back from the assistant. Actually looking the response everything is either 0 or null.
Not sure what I am still doing wrong.
Code:
require('dotenv').config();
const { OpenAI } = require('openai');
const openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });
async function interactWithAssistant(assistantId, userQuery) {
// Create empty thread
const thread = await openai.beta.threads.create();
// Create and Run assistant. Pass Ass ID, thread and messages. Think I may have a problem here.
const run = await openai.beta.threads.createAndRun({
assistant_id: assistantId,
thread: {
messages: [
{ role: "user", content: userQuery },
],
},
});
//retrieve run using thread id and run id.
completedRun = await openai.beta.threads.runs.retrieve(run.thread_id, run.id);
//while status is in progress or queued continue to attempt to retrieve the run / sleep for 1 second between tries.
while(completedRun.status === 'in_progress' || completedRun.status === 'queued'){
completedRun = await openai.beta.threads.runs.retrieve(run.thread_id, run.id);
await new Promise(resolve => setTimeout(resolve, 1000));
}
//If status is not completed log the status
if (completedRun.status !== 'completed') {
console.log(completeRun.status);
}
// Retrieve the Assistant's response Returning empty messages.data
const messages = await openai.beta.threads.messages.list(
thread.id
);
return messages;
}
// Example Usage
const userQuery = "Why are you not working!";
interactWithAssistant(process.env.ASSISTANT_ID, userQuery)
.then(messages => {
console.log(messages)
});
Response
ThreadMessagesPage {
options: {
method: ‘get’,
path: ‘/threads/thread_84UeIP3vFjRAwGzdwzPSM9pB/messages’,
query: {},
headers: { ‘OpenAI-Beta’: ‘assistants=v1’ }
},
response: Response {
size: 0,
timeout: 0,
[Symbol(Body internals)]: { body: [Gunzip], disturbed: true, error: null },
[Symbol(Response internals)]: {
url: ‘https://api.openai.com/v1/threads/thread_84UeIP3vFjRAwGzdwzPSM9pB/messages’,
status: 200,
statusText: ‘OK’,
headers: [Headers],
counter: 0
}
},
body: {
object: ‘list’,
data: ,
first_id: null,
last_id: null,
has_more: false
},
data:
}