Код: Выделить всё
async function getResponse() {
const apiKey = 'YOUR_API_KEY';
let retryCount = 0;
const maxRetries = 10;
let backoff = 1000; // initial backoff time in milliseconds
while (retryCount < maxRetries) {
try {
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: "gpt-3.5-turbo",
messages: [{ "role": "user", "content": userInput }]
})
});
if (response.status === 429) {
console.warn(`Rate limit exceeded. Retrying in ${backoff / 1000} seconds...`);
await new Promise(resolve => setTimeout(resolve, backoff));
backoff *= 2; // exponential backoff
retryCount++;
} else if (response.ok) {
const data = await response.json();
// Process response data
break;
} else {
console.error('Unexpected error:', response);
break;
}
} catch (error) {
console.error('Error:', error);
break;
}
}
if (retryCount === maxRetries) {
console.error('Max retries reached.');
}
}
Несмотря на правильную обработку повторных попыток и отсрочку, ошибка «429 Too Many Requests» по-прежнему возникает часто. Может ли кто-нибудь предоставить информацию или предложения о том, как лучше справиться с этой ошибкой, или какие-либо возможные способы оптимизации вызовов API, чтобы избежать превышения ограничений скорости?
Подробнее здесь: https://stackoverflow.com/questions/793 ... openai-api
Мобильная версия