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)