Hi there! I’m working on creating a script that will handle thousands of queries. I’ve developed a function specifically for this purpose, which executes the requests in a loop. I would appreciate your input on whether you think this function is good enough for this purpose:
// Function to send queries to ChatGPT and get completions
async function queryChatGpt(queries) {
const results = [];
for (const query of queries) {
console.log(query);
let success = false;
let completion;
// Retry loop for handling errors
for (let retry = 0; retry < 50; retry++) {
try {
completion = await openai.createChatCompletion({
model: "gpt-3.5-turbo",
messages: [{ role: "user", content: `${query}` }],
});
success = true; // Set success flag if the request is successful
break; // Break the retry loop if successful
} catch (error) {
console.error("An error occurred:", error);
if (error.response?.status === 502) {
console.log("502 Bad Gateway error. Retrying...");
} else if (error.response?.status === 429) {
console.log("429 Too Many Requests error. Retrying...");
} else {
throw error; // Re-throw other errors
}
await delay(10000); // Delay for 10 seconds before retrying
}
}
// Store the result only if it was successful
if (success) {
results.push({ query, completion });
await appendResultsToFile([{ query, completion }]);
} else {
console.error("Failed to get completion for query:", query);
}
await delay(5000); // Delay for 5 seconds before the next iteration
}
return results;
}