diff --git a/frontend/src/components/account/CreateAccountModal.vue b/frontend/src/components/account/CreateAccountModal.vue index 5cbc9691df..fa361e637a 100644 --- a/frontend/src/components/account/CreateAccountModal.vue +++ b/frontend/src/components/account/CreateAccountModal.vue @@ -1410,6 +1410,36 @@ + +
+
+
+ +

+ {{ t('admin.accounts.quotaControl.clientAffinity.hint') }} +

+
+ +
+
+
(null) @@ -3140,6 +3173,7 @@ const resetForm = () => { editQuotaLimit.value = null editQuotaDailyLimit.value = null editQuotaWeeklyLimit.value = null + clientAffinityEnabled.value = false modelMappings.value = [] modelRestrictionMode.value = 'whitelist' allowedModels.value = [...claudeModels] // Default fill related models @@ -3243,10 +3277,20 @@ const buildAnthropicExtra = (base?: Record): Record 0 ? extra : undefined } +/** 将客户端亲和设置写入 extra(Anthropic 全类型通用) */ +const applyClientAffinity = (extra: Record) => { + if (clientAffinityEnabled.value) { + extra.client_affinity_enabled = true + } else { + delete extra.client_affinity_enabled + } +} + const buildSoraExtra = ( base?: Record, linkedOpenAIAccountId?: string | number @@ -4143,6 +4187,9 @@ const handleAnthropicExchange = async (authCode: string) => { extra.cache_ttl_override_target = cacheTTLOverrideTarget.value } + // Add client affinity setting + applyClientAffinity(extra) + const credentials: Record = { ...tokenInfo } applyInterceptWarmup(credentials, interceptWarmupRequests.value, 'create') await createAccountAndFinish(form.platform, addMethod.value as AccountType, credentials, extra)