Превышен лимит скорости в Face API
Что я должен делать, когда я столкнулся с превышением ограничения скорости для лица API, кроме использования Task.Delay(1000)
?
У меня есть около 50 записей и обнаружение / идентификация / проверка за 2 секунды. Для identifyasync
Я установил порог достоверности 0,0f, а максимальное число кандидатов вернулось равным 50. Я пытался использовать Task.Delay(1000)
и уменьшил количество кандидатов, но это не помогает решить мою проблему.
Пожалуйста, дайте мне совет, как решить эту проблему, поскольку я новичок в этом.
1 ответ
Я написал библиотеку RateLimiter для обработки такого рода ограничений. Это составное, асинхронное и отменяемое.
Кажется, что квота Face API ограничена 10 вызовами в секунду, поэтому вы можете написать:
var timeconstraint = TimeLimiter.GetFromMaxCountByInterval(10, TimeSpan.FromSeconds(1));
for(int i=0; i<1000; i++)
{
await timeconstraint.Perform(DoFaceAPIRequest);
}
private Task DoFaceAPIRequest()
{
//send request to Face API
}
Это также доступно как пакет nuget.