@@ -97,8 +97,8 @@ export async function handler(
9797 const zenData = ZenData . list ( opts . modelList )
9898 const modelInfo = validateModel ( zenData , model )
9999 const dataDumper = createDataDumper ( sessionId , requestId , projectId )
100- const trialLimiter = createTrialLimiter ( modelInfo . trialProvider , ip )
101- const trialProvider = await trialLimiter ?. check ( )
100+ const trialLimiter = createTrialLimiter ( modelInfo . trialProviders , ip )
101+ const trialProviders = await trialLimiter ?. check ( )
102102 const rateLimiter = createRateLimiter (
103103 modelInfo . id ,
104104 modelInfo . allowAnonymous ,
@@ -120,7 +120,7 @@ export async function handler(
120120 authInfo ,
121121 modelInfo ,
122122 sessionId ,
123- trialProvider ,
123+ trialProviders ,
124124 retry ,
125125 stickyProvider ,
126126 )
@@ -402,7 +402,7 @@ export async function handler(
402402 authInfo : AuthInfo ,
403403 modelInfo : ModelInfo ,
404404 sessionId : string ,
405- trialProvider : string | undefined ,
405+ trialProviders : string [ ] | undefined ,
406406 retry : RetryOptions ,
407407 stickyProvider : string | undefined ,
408408 ) {
@@ -411,15 +411,17 @@ export async function handler(
411411 return modelInfo . providers . find ( ( provider ) => provider . id === modelInfo . byokProvider )
412412 }
413413
414- if ( trialProvider ) {
415- return modelInfo . providers . find ( ( provider ) => provider . id === trialProvider )
416- }
417-
418414 if ( stickyProvider ) {
419415 const provider = modelInfo . providers . find ( ( provider ) => provider . id === stickyProvider )
420416 if ( provider ) return provider
421417 }
422418
419+ if ( trialProviders ) {
420+ const trialProvider = trialProviders [ Math . floor ( Math . random ( ) * trialProviders . length ) ]
421+ const provider = modelInfo . providers . find ( ( provider ) => provider . id === trialProvider )
422+ if ( provider ) return provider
423+ }
424+
423425 if ( retry . retryCount !== MAX_FAILOVER_RETRIES ) {
424426 const providers = modelInfo . providers
425427 . filter ( ( provider ) => ! provider . disabled )
0 commit comments