From bab4bb990450f19ed172e459c66d4e5ac38381f9 Mon Sep 17 00:00:00 2001 From: shaw Date: Thu, 5 Mar 2026 18:58:10 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E6=9B=B4=E6=96=B0openai=E3=80=81claud?= =?UTF-8?q?e=E4=BD=BF=E7=94=A8=E7=A7=98=E9=92=A5=E6=95=99=E7=A8=8B?= =?UTF-8?q?=E9=83=A8=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/account/CreateAccountModal.vue | 5 ++- .../components/account/EditAccountModal.vue | 5 ++- frontend/src/components/keys/UseKeyModal.vue | 41 +++++++++++++------ 3 files changed, 34 insertions(+), 17 deletions(-) diff --git a/frontend/src/components/account/CreateAccountModal.vue b/frontend/src/components/account/CreateAccountModal.vue index f7e6f5ff..225b91f5 100644 --- a/frontend/src/components/account/CreateAccountModal.vue +++ b/frontend/src/components/account/CreateAccountModal.vue @@ -2341,7 +2341,7 @@ import { applyInterceptWarmup } from '@/components/account/credentialsBuilder' import { formatDateTimeLocalInput, parseDateTimeLocalInput } from '@/utils/format' import { createStableObjectKeyResolver } from '@/utils/stableObjectKey' import { - OPENAI_WS_MODE_CTX_POOL, + // OPENAI_WS_MODE_CTX_POOL, OPENAI_WS_MODE_OFF, OPENAI_WS_MODE_PASSTHROUGH, isOpenAIWSModeEnabled, @@ -2542,7 +2542,8 @@ const geminiSelectedTier = computed(() => { const openAIWSModeOptions = computed(() => [ { value: OPENAI_WS_MODE_OFF, label: t('admin.accounts.openai.wsModeOff') }, - { value: OPENAI_WS_MODE_CTX_POOL, label: t('admin.accounts.openai.wsModeCtxPool') }, + // TODO: ctx_pool 选项暂时隐藏,待测试完成后恢复 + // { value: OPENAI_WS_MODE_CTX_POOL, label: t('admin.accounts.openai.wsModeCtxPool') }, { value: OPENAI_WS_MODE_PASSTHROUGH, label: t('admin.accounts.openai.wsModePassthrough') } ]) diff --git a/frontend/src/components/account/EditAccountModal.vue b/frontend/src/components/account/EditAccountModal.vue index 20d785e2..09b39bc0 100644 --- a/frontend/src/components/account/EditAccountModal.vue +++ b/frontend/src/components/account/EditAccountModal.vue @@ -1273,7 +1273,7 @@ import { applyInterceptWarmup } from '@/components/account/credentialsBuilder' import { formatDateTimeLocalInput, parseDateTimeLocalInput } from '@/utils/format' import { createStableObjectKeyResolver } from '@/utils/stableObjectKey' import { - OPENAI_WS_MODE_CTX_POOL, + // OPENAI_WS_MODE_CTX_POOL, OPENAI_WS_MODE_OFF, OPENAI_WS_MODE_PASSTHROUGH, isOpenAIWSModeEnabled, @@ -1388,7 +1388,8 @@ const codexCLIOnlyEnabled = ref(false) const anthropicPassthroughEnabled = ref(false) const openAIWSModeOptions = computed(() => [ { value: OPENAI_WS_MODE_OFF, label: t('admin.accounts.openai.wsModeOff') }, - { value: OPENAI_WS_MODE_CTX_POOL, label: t('admin.accounts.openai.wsModeCtxPool') }, + // TODO: ctx_pool 选项暂时隐藏,待测试完成后恢复 + // { value: OPENAI_WS_MODE_CTX_POOL, label: t('admin.accounts.openai.wsModeCtxPool') }, { value: OPENAI_WS_MODE_PASSTHROUGH, label: t('admin.accounts.openai.wsModePassthrough') } ]) const openaiResponsesWebSocketV2Mode = computed({ diff --git a/frontend/src/components/keys/UseKeyModal.vue b/frontend/src/components/keys/UseKeyModal.vue index 4dd7ff0c..a0233742 100644 --- a/frontend/src/components/keys/UseKeyModal.vue +++ b/frontend/src/components/keys/UseKeyModal.vue @@ -443,7 +443,22 @@ $env:ANTHROPIC_AUTH_TOKEN="${apiKey}"` content = '' } - return [{ path, content }] + const vscodeSettingsPath = activeTab.value === 'unix' + ? '~/.claude/settings.json' + : '%userprofile%\\.claude\\settings.json' + + const vscodeContent = `{ + "env": { + "ANTHROPIC_BASE_URL": "${baseUrl}", + "ANTHROPIC_AUTH_TOKEN": "${apiKey}", + "CLAUDE_CODE_ATTRIBUTION_HEADER": "0" + } +}` + + return [ + { path, content }, + { path: vscodeSettingsPath, content: vscodeContent, hint: 'VSCode Claude Code' } + ] } function generateGeminiCliContent(baseUrl: string, apiKey: string): FileConfig { @@ -496,16 +511,16 @@ function generateOpenAIFiles(baseUrl: string, apiKey: string): FileConfig[] { const configDir = isWindows ? '%userprofile%\\.codex' : '~/.codex' // config.toml content - const configContent = `model_provider = "sub2api" + const configContent = `model_provider = "OpenAI" model = "gpt-5.3-codex" -model_reasoning_effort = "high" -network_access = "enabled" +review_model = "gpt-5.3-codex" +model_reasoning_effort = "xhigh" disable_response_storage = true +network_access = "enabled" windows_wsl_setup_acknowledged = true -model_verbosity = "high" -[model_providers.sub2api] -name = "sub2api" +[model_providers.OpenAI] +name = "OpenAI" base_url = "${baseUrl}" wire_api = "responses" requires_openai_auth = true` @@ -533,16 +548,16 @@ function generateOpenAIWsFiles(baseUrl: string, apiKey: string): FileConfig[] { const configDir = isWindows ? '%userprofile%\\.codex' : '~/.codex' // config.toml content with WebSocket v2 - const configContent = `model_provider = "sub2api" + const configContent = `model_provider = "OpenAI" model = "gpt-5.3-codex" -model_reasoning_effort = "high" -network_access = "enabled" +review_model = "gpt-5.3-codex" +model_reasoning_effort = "xhigh" disable_response_storage = true +network_access = "enabled" windows_wsl_setup_acknowledged = true -model_verbosity = "high" -[model_providers.sub2api] -name = "sub2api" +[model_providers.OpenAI] +name = "OpenAI" base_url = "${baseUrl}" wire_api = "responses" supports_websockets = true