Превышен лимит скорости в 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.

Другие вопросы по тегам