fix(openai): 新建账号弹窗补全 Responses API 路由选项

This commit is contained in:
shaw 2026-05-19 16:00:15 +08:00
parent 089582d0c7
commit 90a389342c

View File

@ -2649,6 +2649,28 @@
</div>
</div>
<!-- OpenAI APIKey Responses API support mode -->
<div
v-if="form.platform === 'openai' && accountCategory === 'apikey'"
class="border-t border-gray-200 pt-4 dark:border-dark-600"
>
<div class="flex items-center justify-between gap-4">
<div>
<label class="input-label mb-0">{{ t('admin.accounts.openai.responsesMode') }}</label>
<p class="mt-1 text-xs text-gray-500 dark:text-gray-400">
{{ t('admin.accounts.openai.responsesModeDesc') }}
</p>
</div>
<div class="w-56">
<Select
v-model="openAIResponsesMode"
:options="openAIResponsesModeOptions"
data-testid="openai-responses-mode-select"
/>
</div>
</div>
</div>
<div>
<div class="flex items-center justify-between">
<div>
@ -3122,7 +3144,8 @@ import type {
CheckMixedChannelResponse,
CreateAccountRequest,
CodexSessionImportMessage,
OpenAICompactMode
OpenAICompactMode,
OpenAIResponsesMode
} from '@/types'
import BaseDialog from '@/components/common/BaseDialog.vue'
import ConfirmDialog from '@/components/common/ConfirmDialog.vue'
@ -3279,6 +3302,7 @@ const interceptWarmupRequests = ref(false)
const autoPauseOnExpired = ref(true)
const openaiPassthroughEnabled = ref(false)
const openAICompactMode = ref<OpenAICompactMode>('auto')
const openAIResponsesMode = ref<OpenAIResponsesMode>('auto')
const openaiOAuthResponsesWebSocketV2Mode = ref<OpenAIWSMode>(OPENAI_WS_MODE_OFF)
const openaiAPIKeyResponsesWebSocketV2Mode = ref<OpenAIWSMode>(OPENAI_WS_MODE_OFF)
const codexCLIOnlyEnabled = ref(false)
@ -3336,6 +3360,11 @@ const openAICompactModeOptions = computed(() => [
{ value: 'force_on', label: t('admin.accounts.openai.compactModeForceOn') },
{ value: 'force_off', label: t('admin.accounts.openai.compactModeForceOff') }
])
const openAIResponsesModeOptions = computed(() => [
{ value: 'auto', label: t('admin.accounts.openai.responsesModeAuto') },
{ value: 'force_responses', label: t('admin.accounts.openai.responsesModeForceResponses') },
{ value: 'force_chat_completions', label: t('admin.accounts.openai.responsesModeForceChatCompletions') }
])
function buildAntigravityExtra(): Record<string, unknown> | undefined {
const extra: Record<string, unknown> = {}
@ -4042,6 +4071,7 @@ const resetForm = () => {
autoPauseOnExpired.value = true
openaiPassthroughEnabled.value = false
openAICompactMode.value = 'auto'
openAIResponsesMode.value = 'auto'
openaiOAuthResponsesWebSocketV2Mode.value = OPENAI_WS_MODE_OFF
openaiAPIKeyResponsesWebSocketV2Mode.value = OPENAI_WS_MODE_OFF
codexCLIOnlyEnabled.value = false
@ -4129,6 +4159,12 @@ const buildOpenAIExtra = (base?: Record<string, unknown>): Record<string, unknow
delete extra.openai_compact_mode
}
if (accountCategory.value === 'apikey' && openAIResponsesMode.value !== 'auto') {
extra.openai_responses_mode = openAIResponsesMode.value
} else {
delete extra.openai_responses_mode
}
return Object.keys(extra).length > 0 ? extra : undefined
}