Face API中超出了速率限制

时间:2018-03-19 09:24:01

标签: c# azure-cognitive-services face-api

除了使用Task.Delay(1000)之外,当我遇到face api的速率限制时,我该怎么办?
我有大约50条记录,并在2秒内检测/识别/验证。对于identifyasync,我将置信度阈值设置为0.0f,并将候选者的最大数量设置为50.我尝试使用Task.Delay(1000)并减少了候选者的数量,但它并没有。帮助解决我的问题。

请向我提供有关如何解决此问题的建议,因为我是新手。

1 个答案:

答案 0 :(得分:0)

我写了一个库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 package使用。