From f7adf02eb4b4afcae3af7d581e4b88fa9e32420c Mon Sep 17 00:00:00 2001
From: Seefs <40468931+seefs001@users.noreply.github.com>
Date: Wed, 15 Apr 2026 20:55:01 +0800
Subject: [PATCH] feat(claude): add cache_control and speed passthrough
controls (#4247)
---
docs/openapi/relay.json | 54 ++++++++++++++++++-
dto/channel_settings.go | 1 +
dto/claude.go | 12 +++--
relay/common/override.go | 1 +
relay/common/override_test.go | 20 ++++++-
relay/common/relay_info.go | 8 +++
.../channels/modals/EditChannelModal.jsx | 7 +++
web/src/i18n/locales/en.json | 2 +
web/src/i18n/locales/fr.json | 2 +
web/src/i18n/locales/ja.json | 2 +
web/src/i18n/locales/ru.json | 2 +
web/src/i18n/locales/vi.json | 2 +
web/src/i18n/locales/zh-CN.json | 2 +
web/src/i18n/locales/zh-TW.json | 4 ++
14 files changed, 113 insertions(+), 6 deletions(-)
diff --git a/docs/openapi/relay.json b/docs/openapi/relay.json
index b6dfbd31..62a0b65b 100644
--- a/docs/openapi/relay.json
+++ b/docs/openapi/relay.json
@@ -3281,6 +3281,13 @@
}
]
},
+ "cache_control": {
+ "type": "object",
+ "properties": {}
+ },
+ "inference_geo": {
+ "type": "string"
+ },
"max_tokens": {
"type": "integer",
"minimum": 1
@@ -3333,7 +3340,8 @@
"enum": [
"auto",
"any",
- "tool"
+ "tool",
+ "none"
]
},
"name": {
@@ -3358,6 +3366,36 @@
}
}
},
+ "context_management": {
+ "type": "object",
+ "properties": {}
+ },
+ "output_config": {
+ "type": "object",
+ "properties": {}
+ },
+ "output_format": {
+ "type": "object",
+ "properties": {}
+ },
+ "container": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object",
+ "properties": {}
+ }
+ ]
+ },
+ "mcp_servers": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {}
+ }
+ },
"metadata": {
"type": "object",
"properties": {
@@ -3365,6 +3403,20 @@
"type": "string"
}
}
+ },
+ "speed": {
+ "type": "string",
+ "enum": [
+ "standard",
+ "fast"
+ ]
+ },
+ "service_tier": {
+ "type": "string",
+ "enum": [
+ "auto",
+ "standard_only"
+ ]
}
}
},
diff --git a/dto/channel_settings.go b/dto/channel_settings.go
index 8d7466d2..b6a1ab9f 100644
--- a/dto/channel_settings.go
+++ b/dto/channel_settings.go
@@ -30,6 +30,7 @@ type ChannelOtherSettings struct {
ClaudeBetaQuery bool `json:"claude_beta_query,omitempty"` // Claude 渠道是否强制追加 ?beta=true
AllowServiceTier bool `json:"allow_service_tier,omitempty"` // 是否允许 service_tier 透传(默认过滤以避免额外计费)
AllowInferenceGeo bool `json:"allow_inference_geo,omitempty"` // 是否允许 inference_geo 透传(仅 Claude,默认过滤以满足数据驻留合规
+ AllowSpeed bool `json:"allow_speed,omitempty"` // 是否允许 speed 透传(仅 Claude,默认过滤以避免意外切换推理速度模式)
AllowSafetyIdentifier bool `json:"allow_safety_identifier,omitempty"` // 是否允许 safety_identifier 透传(默认过滤以保护用户隐私)
DisableStore bool `json:"disable_store,omitempty"` // 是否禁用 store 透传(默认允许透传,禁用后可能导致 Codex 无法使用)
AllowIncludeObfuscation bool `json:"allow_include_obfuscation,omitempty"` // 是否允许 stream_options.include_obfuscation 透传(默认过滤以避免关闭流混淆保护)
diff --git a/dto/claude.go b/dto/claude.go
index d292f97e..b35d6565 100644
--- a/dto/claude.go
+++ b/dto/claude.go
@@ -204,10 +204,11 @@ type ClaudeToolChoice struct {
}
type ClaudeRequest struct {
- Model string `json:"model"`
- Prompt string `json:"prompt,omitempty"`
- System any `json:"system,omitempty"`
- Messages []ClaudeMessage `json:"messages,omitempty"`
+ Model string `json:"model"`
+ Prompt string `json:"prompt,omitempty"`
+ System any `json:"system,omitempty"`
+ Messages []ClaudeMessage `json:"messages,omitempty"`
+ CacheControl json.RawMessage `json:"cache_control,omitempty"`
// InferenceGeo controls Claude data residency region.
// This field is filtered by default and can be enabled via channel setting allow_inference_geo.
InferenceGeo string `json:"inference_geo,omitempty"`
@@ -227,6 +228,9 @@ type ClaudeRequest struct {
Thinking *Thinking `json:"thinking,omitempty"`
McpServers json.RawMessage `json:"mcp_servers,omitempty"`
Metadata json.RawMessage `json:"metadata,omitempty"`
+ // Speed specifies the Claude inference speed mode.
+ // This field is filtered by default and can be enabled via channel setting allow_speed.
+ Speed json.RawMessage `json:"speed,omitempty"`
// ServiceTier specifies upstream service level and may affect billing.
// This field is filtered by default and can be enabled via channel setting allow_service_tier.
ServiceTier string `json:"service_tier,omitempty"`
diff --git a/relay/common/override.go b/relay/common/override.go
index af0b4361..1a28303f 100644
--- a/relay/common/override.go
+++ b/relay/common/override.go
@@ -32,6 +32,7 @@ var paramOverrideKeyAuditPaths = map[string]struct{}{
"upstream_model": {},
"service_tier": {},
"inference_geo": {},
+ "speed": {},
}
type paramOverrideAuditRecorder struct {
diff --git a/relay/common/override_test.go b/relay/common/override_test.go
index 1a7793ba..6e35cf73 100644
--- a/relay/common/override_test.go
+++ b/relay/common/override_test.go
@@ -2038,6 +2038,8 @@ func TestRemoveDisabledFieldsDefaultFiltering(t *testing.T) {
input := `{
"service_tier":"flex",
"inference_geo":"eu",
+ "speed":"fast",
+ "cache_control":{"type":"ephemeral"},
"safety_identifier":"user-123",
"store":true,
"stream_options":{"include_obfuscation":false}
@@ -2048,7 +2050,7 @@ func TestRemoveDisabledFieldsDefaultFiltering(t *testing.T) {
if err != nil {
t.Fatalf("RemoveDisabledFields returned error: %v", err)
}
- assertJSONEqual(t, `{"store":true}`, string(out))
+ assertJSONEqual(t, `{"cache_control":{"type":"ephemeral"},"store":true}`, string(out))
}
func TestRemoveDisabledFieldsAllowInferenceGeo(t *testing.T) {
@@ -2067,6 +2069,22 @@ func TestRemoveDisabledFieldsAllowInferenceGeo(t *testing.T) {
assertJSONEqual(t, `{"inference_geo":"eu","store":true}`, string(out))
}
+func TestRemoveDisabledFieldsAllowSpeed(t *testing.T) {
+ input := `{
+ "speed":"fast",
+ "store":true
+ }`
+ settings := dto.ChannelOtherSettings{
+ AllowSpeed: true,
+ }
+
+ out, err := RemoveDisabledFields([]byte(input), settings, false)
+ if err != nil {
+ t.Fatalf("RemoveDisabledFields returned error: %v", err)
+ }
+ assertJSONEqual(t, `{"speed":"fast","store":true}`, string(out))
+}
+
func TestApplyParamOverrideWithRelayInfoRecordsOperationAuditInDebugMode(t *testing.T) {
originalDebugEnabled := common2.DebugEnabled
common2.DebugEnabled = true
diff --git a/relay/common/relay_info.go b/relay/common/relay_info.go
index 0bb75ee6..2e157fc8 100644
--- a/relay/common/relay_info.go
+++ b/relay/common/relay_info.go
@@ -771,6 +771,7 @@ func FailTaskInfo(reason string) *TaskInfo {
// RemoveDisabledFields 从请求 JSON 数据中移除渠道设置中禁用的字段
// service_tier: 服务层级字段,可能导致额外计费(OpenAI、Claude、Responses API 支持)
// inference_geo: Claude 数据驻留推理区域字段(仅 Claude 支持,默认过滤)
+// speed: Claude 推理速度模式字段(仅 Claude 支持,默认过滤)
// store: 数据存储授权字段,涉及用户隐私(仅 OpenAI、Responses API 支持,默认允许透传,禁用后可能导致 Codex 无法使用)
// safety_identifier: 安全标识符,用于向 OpenAI 报告违规用户(仅 OpenAI 支持,涉及用户隐私)
// stream_options.include_obfuscation: 响应流混淆控制字段(仅 OpenAI Responses API 支持)
@@ -799,6 +800,13 @@ func RemoveDisabledFields(jsonData []byte, channelOtherSettings dto.ChannelOther
}
}
+ // 默认移除 speed,除非明确允许(避免意外切换 Claude 推理速度模式)
+ if !channelOtherSettings.AllowSpeed {
+ if _, exists := data["speed"]; exists {
+ delete(data, "speed")
+ }
+ }
+
// 默认允许 store 透传,除非明确禁用(禁用可能影响 Codex 使用)
if channelOtherSettings.DisableStore {
if _, exists := data["store"]; exists {
diff --git a/web/src/components/table/channels/modals/EditChannelModal.jsx b/web/src/components/table/channels/modals/EditChannelModal.jsx
index 899e2905..f0395d2f 100644
--- a/web/src/components/table/channels/modals/EditChannelModal.jsx
+++ b/web/src/components/table/channels/modals/EditChannelModal.jsx
@@ -208,6 +208,7 @@ const EditChannelModal = (props) => {
allow_safety_identifier: false,
allow_include_obfuscation: false,
allow_inference_geo: false,
+ allow_speed: false,
claude_beta_query: false,
upstream_model_update_check_enabled: false,
upstream_model_update_auto_sync_enabled: false,
@@ -890,6 +891,7 @@ const EditChannelModal = (props) => {
parsedSettings.allow_include_obfuscation || false;
data.allow_inference_geo =
parsedSettings.allow_inference_geo || false;
+ data.allow_speed = parsedSettings.allow_speed || false;
data.claude_beta_query = parsedSettings.claude_beta_query || false;
data.upstream_model_update_check_enabled =
parsedSettings.upstream_model_update_check_enabled === true;
@@ -919,6 +921,7 @@ const EditChannelModal = (props) => {
data.allow_safety_identifier = false;
data.allow_include_obfuscation = false;
data.allow_inference_geo = false;
+ data.allow_speed = false;
data.claude_beta_query = false;
data.upstream_model_update_check_enabled = false;
data.upstream_model_update_auto_sync_enabled = false;
@@ -936,6 +939,7 @@ const EditChannelModal = (props) => {
data.allow_safety_identifier = false;
data.allow_include_obfuscation = false;
data.allow_inference_geo = false;
+ data.allow_speed = false;
data.claude_beta_query = false;
data.upstream_model_update_check_enabled = false;
data.upstream_model_update_auto_sync_enabled = false;
@@ -1776,6 +1780,7 @@ const EditChannelModal = (props) => {
}
if (localInputs.type === 14) {
settings.allow_inference_geo = localInputs.allow_inference_geo === true;
+ settings.allow_speed = localInputs.allow_speed === true;
settings.claude_beta_query = localInputs.claude_beta_query === true;
}
}
@@ -1823,6 +1828,7 @@ const EditChannelModal = (props) => {
delete localInputs.allow_safety_identifier;
delete localInputs.allow_include_obfuscation;
delete localInputs.allow_inference_geo;
+ delete localInputs.allow_speed;
delete localInputs.claude_beta_query;
delete localInputs.upstream_model_update_check_enabled;
delete localInputs.upstream_model_update_auto_sync_enabled;
@@ -2480,6 +2486,7 @@ const EditChannelModal = (props) => {
handleChannelOtherSettingsChange('allow_service_tier', value)} extraText={t('service_tier 字段用于指定服务层级,允许透传可能导致实际计费高于预期。默认关闭以避免额外费用')} />
handleChannelOtherSettingsChange('allow_inference_geo', value)} extraText={t('inference_geo 字段用于控制 Claude 数据驻留推理区域。默认关闭以避免未经授权透传地域信息')} />
+ handleChannelOtherSettingsChange('allow_speed', value)} extraText={t('speed 字段用于控制 Claude 推理速度模式。默认关闭以避免意外切换到 fast 模式')} />
>
)}
diff --git a/web/src/i18n/locales/en.json b/web/src/i18n/locales/en.json
index eade595e..e273c38b 100644
--- a/web/src/i18n/locales/en.json
+++ b/web/src/i18n/locales/en.json
@@ -250,6 +250,7 @@
"price_xxx 的商品价格 ID,新建产品后可获得": "Product price ID for price_xxx, available after creating new product",
"safety_identifier 字段用于帮助 OpenAI 识别可能违反使用政策的应用程序用户。默认关闭以保护用户隐私": "The safety_identifier field helps OpenAI identify application users who may violate usage policies. Disabled by default to protect user privacy",
"service_tier 字段用于指定服务层级,允许透传可能导致实际计费高于预期。默认关闭以避免额外费用": "The service_tier field is used to specify service level. Allowing pass-through may result in higher billing than expected. Disabled by default to avoid extra charges",
+ "speed 字段用于控制 Claude 推理速度模式。默认关闭以避免意外切换到 fast 模式": "The speed field controls Claude inference speed mode. Disabled by default to avoid unintentionally switching to fast mode",
"sk_xxx 或 rk_xxx 的 Stripe 密钥,敏感信息不显示": "Stripe key for sk_xxx or rk_xxx, sensitive information not displayed",
"standard 已被移除,vip 用户看不到": "standard has been removed, vip users cannot see it",
"store 字段用于授权 OpenAI 存储请求数据以评估和优化产品。默认关闭,开启后可能导致 Codex 无法正常使用": "The store field authorizes OpenAI to store request data for product evaluation and optimization. Disabled by default. Enabling may cause Codex to malfunction",
@@ -581,6 +582,7 @@
"允许 inference_geo 透传": "Allow inference_geo Pass-through",
"允许 safety_identifier 透传": "Allow safety_identifier Pass-through",
"允许 service_tier 透传": "Allow service_tier Pass-through",
+ "允许 speed 透传": "Allow speed Pass-through",
"允许 stream_options.include_obfuscation 透传": "Allow stream_options.include_obfuscation Pass-through",
"允许不安全的 Origin(HTTP)": "Allow insecure Origin (HTTP)",
"允许回调(会泄露服务器 IP 地址)": "Allow callback (will leak server IP address)",
diff --git a/web/src/i18n/locales/fr.json b/web/src/i18n/locales/fr.json
index fed6b191..61c6c370 100644
--- a/web/src/i18n/locales/fr.json
+++ b/web/src/i18n/locales/fr.json
@@ -246,6 +246,7 @@
"price_xxx 的商品价格 ID,新建产品后可获得": "ID de prix du produit price_xxx, peut être obtenu après la création d'un nouveau produit",
"safety_identifier 字段用于帮助 OpenAI 识别可能违反使用政策的应用程序用户。默认关闭以保护用户隐私": "Le champ safety_identifier aide OpenAI à identifier les utilisateurs d'applications susceptibles de violer les politiques d'utilisation. Désactivé par défaut pour protéger la confidentialité des utilisateurs",
"service_tier 字段用于指定服务层级,允许透传可能导致实际计费高于预期。默认关闭以避免额外费用": "Le champ service_tier est utilisé pour spécifier le niveau de service. Permettre le passage peut entraîner une facturation plus élevée que prévu. Désactivé par défaut pour éviter des frais supplémentaires",
+ "speed 字段用于控制 Claude 推理速度模式。默认关闭以避免意外切换到 fast 模式": "Le champ speed contrôle le mode de vitesse d'inférence de Claude. Désactivé par défaut pour éviter un passage involontaire au mode fast",
"sk_xxx 或 rk_xxx 的 Stripe 密钥,敏感信息不显示": "Clé secrète Stripe sk_xxx ou rk_xxx, les informations sensibles ne sont pas affichées",
"standard 已被移除,vip 用户看不到": "standard has been removed, vip users cannot see it",
"store 字段用于授权 OpenAI 存储请求数据以评估和优化产品。默认关闭,开启后可能导致 Codex 无法正常使用": "Le champ store autorise OpenAI à stocker les données de requête pour l'évaluation et l'optimisation du produit. Désactivé par défaut. L'activation peut causer un dysfonctionnement de Codex",
@@ -574,6 +575,7 @@
"允许 inference_geo 透传": "Autoriser la transmission de inference_geo",
"允许 safety_identifier 透传": "Autoriser le passage de safety_identifier",
"允许 service_tier 透传": "Autoriser le passage de service_tier",
+ "允许 speed 透传": "Autoriser la transmission de speed",
"允许 stream_options.include_obfuscation 透传": "Autoriser la transmission de stream_options.include_obfuscation",
"允许不安全的 Origin(HTTP)": "Autoriser une origine non sécurisée (HTTP)",
"允许回调(会泄露服务器 IP 地址)": "Autoriser le rappel (divulguera l'adresse IP du serveur)",
diff --git a/web/src/i18n/locales/ja.json b/web/src/i18n/locales/ja.json
index 61641dfb..e0dc5a72 100644
--- a/web/src/i18n/locales/ja.json
+++ b/web/src/i18n/locales/ja.json
@@ -242,6 +242,7 @@
"price_xxx 的商品价格 ID,新建产品后可获得": "price_xxx の料金ID。新規製品の作成後に取得できます",
"safety_identifier 字段用于帮助 OpenAI 识别可能违反使用政策的应用程序用户。默认关闭以保护用户隐私": "safety_identifierフィールドは、OpenAIが利用ポリシーに違反する可能性のあるアプリユーザーを特定するために使用されます。ユーザーのプライバシーを保護するため、デフォルトでは無効です",
"service_tier 字段用于指定服务层级,允许透传可能导致实际计费高于预期。默认关闭以避免额外费用": "service_tierフィールドはサービス階層の指定に使用されます。パススルーを許可すると実際の課金額が想定を上回る場合があるため、追加料金を避けるためにデフォルトでは無効になっています",
+ "speed 字段用于控制 Claude 推理速度模式。默认关闭以避免意外切换到 fast 模式": "speed フィールドは Claude の推論速度モードを制御します。意図せず fast モードへ切り替わるのを避けるため、デフォルトで無効です",
"sk_xxx 或 rk_xxx 的 Stripe 密钥,敏感信息不显示": "sk_xxx または rk_xxx のStripe APIキー。機密情報は表示されません",
"standard 已被移除,vip 用户看不到": "standard は削除され、vipユーザーには表示されません",
"store 字段用于授权 OpenAI 存储请求数据以评估和优化产品。默认关闭,开启后可能导致 Codex 无法正常使用": "storeフィールドは、製品の評価と最適化のためにOpenAIがリクエストデータを保存することを許可します。デフォルトでは無効です。有効にすると、Codexが正常に利用できなくなる場合があります",
@@ -570,6 +571,7 @@
"允许 inference_geo 透传": "inference_geoパススルーを許可",
"允许 safety_identifier 透传": "safety_identifierのパススルーを許可する",
"允许 service_tier 透传": "service_tierのパススルーを許可する",
+ "允许 speed 透传": "speed パススルーを許可",
"允许 stream_options.include_obfuscation 透传": "stream_options.include_obfuscationパススルーを許可",
"允许不安全的 Origin(HTTP)": "安全でないオリジン(HTTP)を許可する",
"允许回调(会泄露服务器 IP 地址)": "コールバックを許可する(サーバーIPアドレスが漏洩します)",
diff --git a/web/src/i18n/locales/ru.json b/web/src/i18n/locales/ru.json
index 0986d336..a3503904 100644
--- a/web/src/i18n/locales/ru.json
+++ b/web/src/i18n/locales/ru.json
@@ -249,6 +249,7 @@
"price_xxx 的商品价格 ID,新建产品后可获得": "ID цены товара price_xxx, можно получить после создания нового продукта",
"safety_identifier 字段用于帮助 OpenAI 识别可能违反使用政策的应用程序用户。默认关闭以保护用户隐私": "Поле safety_identifier помогает OpenAI идентифицировать пользователей приложений, которые могут нарушать политику использования. По умолчанию отключено для защиты конфиденциальности пользователей",
"service_tier 字段用于指定服务层级,允许透传可能导致实际计费高于预期。默认关闭以避免额外费用": "Поле service_tier используется для указания уровня сервиса, позволяет передавать параметры, которые могут привести к фактической оплате выше ожидаемой. По умолчанию отключено для избежания дополнительных расходов",
+ "speed 字段用于控制 Claude 推理速度模式。默认关闭以避免意外切换到 fast 模式": "Поле speed управляет режимом скорости инференса Claude. По умолчанию отключено, чтобы избежать непреднамеренного переключения в режим fast",
"sk_xxx 或 rk_xxx 的 Stripe 密钥,敏感信息不显示": "Ключ Stripe sk_xxx или rk_xxx, конфиденциальная информация не отображается",
"standard 已被移除,vip 用户看不到": "standard has been removed, vip users cannot see it",
"store 字段用于授权 OpenAI 存储请求数据以评估和优化产品。默认关闭,开启后可能导致 Codex 无法正常使用": "Поле store используется для авторизации OpenAI хранить данные запросов для оценки и оптимизации продукта. По умолчанию отключено, после включения может привести к неработоспособности Codex",
@@ -577,6 +578,7 @@
"允许 inference_geo 透传": "Разрешить передачу inference_geo",
"允许 safety_identifier 透传": "Разрешить сквозную передачу safety_identifier",
"允许 service_tier 透传": "Разрешить сквозную передачу service_tier",
+ "允许 speed 透传": "Разрешить передачу speed",
"允许 stream_options.include_obfuscation 透传": "Разрешить передачу stream_options.include_obfuscation",
"允许不安全的 Origin(HTTP)": "Разрешить небезопасные Origin (HTTP)",
"允许回调(会泄露服务器 IP 地址)": "Разрешить обратные вызовы (может раскрыть IP-адрес сервера)",
diff --git a/web/src/i18n/locales/vi.json b/web/src/i18n/locales/vi.json
index 266fab5f..dc3de89f 100644
--- a/web/src/i18n/locales/vi.json
+++ b/web/src/i18n/locales/vi.json
@@ -243,6 +243,7 @@
"price_xxx 的商品价格 ID,新建产品后可获得": "ID giá sản phẩm cho price_xxx, có sẵn sau khi tạo sản phẩm mới",
"safety_identifier 字段用于帮助 OpenAI 识别可能违反使用政策的应用程序用户。默认关闭以保护用户隐私": "Trường safety_identifier giúp OpenAI xác định người dùng ứng dụng có thể vi phạm chính sách sử dụng. Tắt theo mặc định để bảo vệ quyền riêng tư của người dùng",
"service_tier 字段用于指定服务层级,允许透传可能导致实际计费高于预期。默认关闭以避免额外费用": "Trường service_tier được sử dụng để chỉ định cấp độ dịch vụ. Cho phép truyền qua có thể dẫn đến việc tính phí thực tế cao hơn dự kiến. Tắt theo mặc định để tránh phí bổ sung",
+ "speed 字段用于控制 Claude 推理速度模式。默认关闭以避免意外切换到 fast 模式": "Trường speed kiểm soát chế độ tốc độ suy luận Claude. Mặc định tắt để tránh vô tình chuyển sang chế độ fast",
"sk_xxx 或 rk_xxx 的 Stripe 密钥,敏感信息不显示": "Khóa Stripe cho sk_xxx hoặc rk_xxx, thông tin nhạy cảm không được hiển thị",
"standard 已被移除,vip 用户看不到": "standard has been removed, vip users cannot see it",
"store 字段用于授权 OpenAI 存储请求数据以评估和优化产品。默认关闭,开启后可能导致 Codex 无法正常使用": "Trường store ủy quyền cho OpenAI lưu trữ dữ liệu yêu cầu để đánh giá và tối ưu hóa sản phẩm. Tắt theo mặc định. Bật có thể khiến Codex hoạt động không chính xác",
@@ -571,6 +572,7 @@
"允许 inference_geo 透传": "Cho phép truyền inference_geo",
"允许 safety_identifier 透传": "Cho phép safety_identifier truyền qua",
"允许 service_tier 透传": "Cho phép service_tier truyền qua",
+ "允许 speed 透传": "Cho phép truyền speed",
"允许 stream_options.include_obfuscation 透传": "Cho phép truyền stream_options.include_obfuscation",
"允许不安全的 Origin(HTTP)": "Cho phép Origin không an toàn (HTTP)",
"允许回调(会泄露服务器 IP 地址)": "Cho phép gọi lại (sẽ làm lộ địa chỉ IP máy chủ)",
diff --git a/web/src/i18n/locales/zh-CN.json b/web/src/i18n/locales/zh-CN.json
index 80f1a962..a64e50d0 100644
--- a/web/src/i18n/locales/zh-CN.json
+++ b/web/src/i18n/locales/zh-CN.json
@@ -140,6 +140,7 @@
"Reasoning Effort": "Reasoning Effort",
"safety_identifier 字段用于帮助 OpenAI 识别可能违反使用政策的应用程序用户。默认关闭以保护用户隐私": "safety_identifier 字段用于帮助 OpenAI 识别可能违反使用政策的应用程序用户。默认关闭以保护用户隐私",
"service_tier 字段用于指定服务层级,允许透传可能导致实际计费高于预期。默认关闭以避免额外费用": "service_tier 字段用于指定服务层级,允许透传可能导致实际计费高于预期。默认关闭以避免额外费用",
+ "speed 字段用于控制 Claude 推理速度模式。默认关闭以避免意外切换到 fast 模式": "speed 字段用于控制 Claude 推理速度模式。默认关闭以避免意外切换到 fast 模式",
"sk_xxx 或 rk_xxx 的 Stripe 密钥,敏感信息不显示": "sk_xxx 或 rk_xxx 的 Stripe 密钥,敏感信息不显示",
"SMTP 发送者邮箱": "SMTP 发送者邮箱",
"SMTP 服务器地址": "SMTP 服务器地址",
@@ -410,6 +411,7 @@
"允许 HTTP 协议图片请求(适用于自部署代理)": "允许 HTTP 协议图片请求(适用于自部署代理)",
"允许 safety_identifier 透传": "允许 safety_identifier 透传",
"允许 service_tier 透传": "允许 service_tier 透传",
+ "允许 speed 透传": "允许 speed 透传",
"允许 Turnstile 用户校验": "允许 Turnstile 用户校验",
"允许不安全的 Origin(HTTP)": "允许不安全的 Origin(HTTP)",
"允许回调(会泄露服务器 IP 地址)": "允许回调(会泄露服务器 IP 地址)",
diff --git a/web/src/i18n/locales/zh-TW.json b/web/src/i18n/locales/zh-TW.json
index aaf6d33c..1f9351c6 100644
--- a/web/src/i18n/locales/zh-TW.json
+++ b/web/src/i18n/locales/zh-TW.json
@@ -198,9 +198,11 @@
"default为默认设置,可单独设置每个分类的安全等级": "default為預設設定,可單獨設定每個分類的安全等級",
"default为默认设置,可单独设置每个模型的版本": "default為預設設定,可單獨設定每個模型的版本",
"false": "false",
+ "inference_geo 字段用于控制 Claude 数据驻留推理区域。默认关闭以避免未经授权透传地域信息": "inference_geo 字段用於控制 Claude 資料駐留推理區域。預設關閉以避免未經授權透傳地域資訊",
"price_xxx 的商品价格 ID,新建产品后可获得": "price_xxx 的商品價格 ID,新建產品後可獲得",
"safety_identifier 字段用于帮助 OpenAI 识别可能违反使用政策的应用程序用户。默认关闭以保护用户隐私": "safety_identifier 字段用於幫助 OpenAI 識別可能違反使用政策的應用程式使用者。預設關閉以保護使用者隱私",
"service_tier 字段用于指定服务层级,允许透传可能导致实际计费高于预期。默认关闭以避免额外费用": "service_tier 字段用於指定服務層級,允許透傳可能導致實際計費高於預期。預設關閉以避免額外費用",
+ "speed 字段用于控制 Claude 推理速度模式。默认关闭以避免意外切换到 fast 模式": "speed 字段用於控制 Claude 推理速度模式。預設關閉以避免意外切換到 fast 模式",
"sk_xxx 或 rk_xxx 的 Stripe 密钥,敏感信息不显示": "sk_xxx 或 rk_xxx 的 Stripe 密鑰,敏感資訊不顯示",
"standard 已被移除,vip 用户看不到": "standard 已被移除,vip 使用者看不到",
"store 字段用于授权 OpenAI 存储请求数据以评估和优化产品。默认关闭,开启后可能导致 Codex 无法正常使用": "store 字段用於授權 OpenAI 存儲請求數據以評估和優化產品。預設關閉,開啟後可能導致 Codex 無法正常使用",
@@ -498,6 +500,8 @@
"允许 Turnstile 用户校验": "允許 Turnstile 使用者校驗",
"允许 safety_identifier 透传": "允許 safety_identifier 透傳",
"允许 service_tier 透传": "允許 service_tier 透傳",
+ "允许 inference_geo 透传": "允許 inference_geo 透傳",
+ "允许 speed 透传": "允許 speed 透傳",
"允许不安全的 Origin(HTTP)": "允許不安全的 Origin(HTTP)",
"允许回调(会泄露服务器 IP 地址)": "允許回調(會洩露伺服器 IP 位址)",
"允许在 Stripe 支付中输入促销码": "允許在 Stripe 支付中輸入促銷碼",