diff --git a/packages/console/app/src/routes/zen/util/handler.ts b/packages/console/app/src/routes/zen/util/handler.ts index 9a0ab94f9..1996d48c5 100644 --- a/packages/console/app/src/routes/zen/util/handler.ts +++ b/packages/console/app/src/routes/zen/util/handler.ts @@ -120,6 +120,7 @@ export async function handler( zenData, authInfo, modelInfo, + ip, sessionId, trialProviders, retry, @@ -402,6 +403,7 @@ export async function handler( zenData: ZenData, authInfo: AuthInfo, modelInfo: ModelInfo, + ip: string, sessionId: string, trialProviders: string[] | undefined, retry: RetryOptions, @@ -430,10 +432,11 @@ export async function handler( .flatMap((provider) => Array(provider.weight ?? 1).fill(provider)) // Use the last 4 characters of session ID to select a provider + const identifier = sessionId.length ? sessionId : ip let h = 0 - const l = sessionId.length + const l = identifier.length for (let i = l - 4; i < l; i++) { - h = (h * 31 + sessionId.charCodeAt(i)) | 0 // 32-bit int + h = (h * 31 + identifier.charCodeAt(i)) | 0 // 32-bit int } const index = (h >>> 0) % providers.length // make unsigned + range 0..length-1 const provider = providers[index || 0]