Преглед изворни кода

feat: moving writefull endpoint configs to settings and splitting the… (#32065)

* feat: moving writefull endpoint configs to settings and splitting them by quota tier

* feat: updating getAllowance to account for WF premium

GitOrigin-RevId: a4f8b50065206f4e841e2488a8bc37a4a3e44574
Jimmy Domagala-Tang пре 4 месеци
родитељ
комит
942d0e7081

+ 7 - 2
services/web/app/src/infrastructure/rate-limiters/AiFeatureUsageRateLimiter.mjs

@@ -4,6 +4,7 @@ import UserGetter from '../../Features/User/UserGetter.mjs'
 import FeatureUsageRateLimiter from './FeatureUsageRateLimiter.mjs'
 import Settings from '@overleaf/settings'
 import SplitTestHandler from '../../Features/SplitTests/SplitTestHandler.mjs'
+import FeaturesHelper from '../../Features/Subscription/FeaturesHelper.mjs'
 
 class AiFeatureUsageRateLimiter extends FeatureUsageRateLimiter {
   constructor() {
@@ -27,9 +28,13 @@ class AiFeatureUsageRateLimiter extends FeatureUsageRateLimiter {
       )
 
     if (inQuotaSplitTest) {
-      const quotaTier = user?.writefull?.isPremium
+      const wfQuota = user.writefull?.isPremium
         ? Settings.writefull.quotaTierGranted
-        : user.features.aiUsageQuota
+        : Settings.aiFeatures.freeTrialQuota
+      const mergedFeatures = FeaturesHelper.mergeFeatures(user.features, {
+        aiUsageQuota: wfQuota,
+      })
+      const quotaTier = mergedFeatures.aiUsageQuota
       return _quotaTierToAllowance(quotaTier)
     } else {
       const DEFAULT_ALLOWANCE = 1