Update for quotas (use it in ia translator)
This commit is contained in:
parent
e0ff0eeba6
commit
00f702b3da
@ -46,6 +46,20 @@ namespace ManagerService.Controllers
|
||||
if (instance == null || !instance.IsAssistant)
|
||||
return Forbid();
|
||||
|
||||
var monthKey = DateTime.UtcNow.ToString("yyyy-MM");
|
||||
if (instance.AiUsageMonthKey != monthKey)
|
||||
{
|
||||
instance.AiRequestsThisMonth = 0;
|
||||
instance.AiUsageMonthKey = monthKey;
|
||||
}
|
||||
|
||||
var quota = instance.AiRequestsPerMonth;
|
||||
if (quota > 0 && instance.AiRequestsThisMonth >= quota)
|
||||
return StatusCode(429, "Quota IA mensuel dépassé");
|
||||
|
||||
instance.AiRequestsThisMonth++;
|
||||
_context.SaveChanges();
|
||||
|
||||
var result = await _assistantService.TranslateAsync(request);
|
||||
return Ok(result);
|
||||
}
|
||||
|
||||
@ -305,12 +305,25 @@ namespace ManagerService.Controllers
|
||||
var monthKey = DateTime.UtcNow.ToString("yyyy-MM");
|
||||
var aiUsed = instance.AiUsageMonthKey == monthKey ? instance.AiRequestsThisMonth : 0;
|
||||
|
||||
var storageQuota = instance.StorageQuotaBytes;
|
||||
var aiQuota = instance.AiRequestsPerMonth;
|
||||
|
||||
if ((storageQuota == 0 || aiQuota == 0) && instance.SubscriptionPlanId != null)
|
||||
{
|
||||
var plan = _myInfoMateDbContext.SubscriptionPlans.FirstOrDefault(p => p.Id == instance.SubscriptionPlanId);
|
||||
if (plan != null)
|
||||
{
|
||||
if (storageQuota == 0) storageQuota = plan.StorageQuotaBytes;
|
||||
if (aiQuota == 0) aiQuota = plan.AiRequestsPerMonth;
|
||||
}
|
||||
}
|
||||
|
||||
return new OkObjectResult(new InstanceQuotaDTO
|
||||
{
|
||||
storageUsedBytes = storageUsed,
|
||||
storageQuotaBytes = instance.StorageQuotaBytes,
|
||||
storageQuotaBytes = storageQuota,
|
||||
aiRequestsUsed = aiUsed,
|
||||
aiRequestsPerMonth = instance.AiRequestsPerMonth
|
||||
aiRequestsPerMonth = aiQuota
|
||||
});
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user