Jelajahi Sumber

zen: update rate limiter

Frank 3 bulan lalu
induk
melakukan
a4ab1408eb

+ 1 - 1
packages/console/app/src/routes/zen/util/handler.ts

@@ -116,7 +116,7 @@ export async function handler(
     const trialProviders = await trialLimiter?.check()
     const rateLimiter = modelInfo.allowAnonymous
       ? createIpRateLimiter(modelInfo.id, modelInfo.rateLimit, ip, input.request)
-      : createKeyRateLimiter(modelInfo.id, zenApiKey, input.request)
+      : createKeyRateLimiter(modelInfo.id, modelInfo.rateLimit, zenApiKey, input.request)
     await rateLimiter?.check()
     const stickyTracker = createStickyTracker(modelInfo.stickyProvider, sessionId)
     const stickyProvider = await stickyTracker?.get()

+ 7 - 2
packages/console/app/src/routes/zen/util/keyRateLimiter.ts

@@ -4,11 +4,16 @@ import { RateLimitError } from "./error"
 import { i18n } from "~/i18n"
 import { localeFromRequest } from "~/lib/language"
 
-export function createRateLimiter(modelId: string, zenApiKey: string | undefined, request: Request) {
+export function createRateLimiter(
+  modelId: string,
+  rateLimit: number | undefined,
+  zenApiKey: string | undefined,
+  request: Request,
+) {
   if (!zenApiKey) return
   const dict = i18n(localeFromRequest(request))
 
-  const LIMIT = 300
+  const LIMIT = rateLimit ?? 300
   const yyyyMMddHHmm = new Date(Date.now())
     .toISOString()
     .replace(/[^0-9]/g, "")