sync
This commit is contained in:
@@ -587,7 +587,10 @@ export async function handler(
|
||||
}))
|
||||
}
|
||||
|
||||
if (retry.retryCount !== MAX_FAILOVER_RETRIES) {
|
||||
// Use fallback provider if max retries reached
|
||||
const fallbackProvider = allProviders.find((provider) => provider.id === modelInfo.fallbackProvider)
|
||||
if (retry.retryCount === MAX_FAILOVER_RETRIES) return fallbackProvider
|
||||
|
||||
let topPriority = Infinity
|
||||
const providers = allProviders
|
||||
.filter((provider) => provider.weight !== 0)
|
||||
@@ -625,7 +628,7 @@ export async function handler(
|
||||
h = (h * 31 + stickyId.charCodeAt(i)) | 0 // 32-bit int
|
||||
}
|
||||
const index = (h >>> 0) % providers.length // make unsigned + range 0..length-1
|
||||
const provider = providers[index || 0]
|
||||
const provider = providers[index || 0] ?? fallbackProvider
|
||||
|
||||
// sticky provider does not exist => use selected provider
|
||||
if (!stickyProviderId) return provider
|
||||
@@ -647,10 +650,6 @@ export async function handler(
|
||||
if (!preferBudgetProvider && !preferTpsProvider) return stickProvider
|
||||
|
||||
return provider
|
||||
}
|
||||
|
||||
// fallback provider
|
||||
return allProviders.find((provider) => provider.id === modelInfo.fallbackProvider)
|
||||
})()
|
||||
|
||||
if (!modelProvider) throw new ModelError(t("zen.api.error.noProviderAvailable"))
|
||||
|
||||
Reference in New Issue
Block a user