diff --git a/src/components/providers/forms/CodexFormFields.tsx b/src/components/providers/forms/CodexFormFields.tsx index 99d8aa7b..694d8b71 100644 --- a/src/components/providers/forms/CodexFormFields.tsx +++ b/src/components/providers/forms/CodexFormFields.tsx @@ -112,7 +112,7 @@ export function CodexFormFields({ value={modelName} onChange={(e) => onModelNameChange(e.target.value)} placeholder={t("codexConfig.modelNamePlaceholder", { - defaultValue: "例如: gpt-5-codex", + defaultValue: "例如: gpt-5.4", })} className="w-full px-3 py-2 border border-border-default bg-background text-foreground rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-blue-500/20 dark:focus:ring-blue-400/20 transition-colors" /> diff --git a/src/components/universal/UniversalProviderFormModal.tsx b/src/components/universal/UniversalProviderFormModal.tsx index e586092c..e085797b 100644 --- a/src/components/universal/UniversalProviderFormModal.tsx +++ b/src/components/universal/UniversalProviderFormModal.tsx @@ -145,7 +145,7 @@ export function UniversalProviderFormModal({ // 计算 Codex 配置 JSON 预览 const codexConfigJson = useMemo(() => { if (!codexEnabled) return null; - const model = models.codex?.model || "gpt-4o"; + const model = models.codex?.model || "gpt-5.4"; const reasoningEffort = models.codex?.reasoningEffort || "high"; // 确保 base_url 以 /v1 结尾(Codex 使用 OpenAI 兼容 API) const codexBaseUrl = baseUrl.endsWith("/v1") @@ -591,7 +591,7 @@ requires_openai_auth = true`; onChange={(e) => updateModel("codex", "model", e.target.value) } - placeholder="gpt-4o" + placeholder="gpt-5.4" />
diff --git a/src/components/usage/ModelTestConfigPanel.tsx b/src/components/usage/ModelTestConfigPanel.tsx index 699facd2..cb6e9fef 100644 --- a/src/components/usage/ModelTestConfigPanel.tsx +++ b/src/components/usage/ModelTestConfigPanel.tsx @@ -24,7 +24,7 @@ export function ModelTestConfigPanel() { maxRetries: "2", degradedThresholdMs: "6000", claudeModel: "claude-haiku-4-5-20251001", - codexModel: "gpt-5.1-codex@low", + codexModel: "gpt-5.4@low", geminiModel: "gemini-3-pro-preview", testPrompt: "Who are you?", }); diff --git a/src/config/codexProviderPresets.ts b/src/config/codexProviderPresets.ts index af210639..eb8a16c4 100644 --- a/src/config/codexProviderPresets.ts +++ b/src/config/codexProviderPresets.ts @@ -40,7 +40,7 @@ export function generateThirdPartyAuth(apiKey: string): Record { export function generateThirdPartyConfig( providerName: string, baseUrl: string, - modelName = "gpt-5.1-codex", + modelName = "gpt-5.4", ): string { // 清理供应商名称,确保符合TOML键名规范 const cleanProviderName = @@ -85,7 +85,7 @@ export const codexProviderPresets: CodexProviderPreset[] = [ isOfficial: true, auth: generateThirdPartyAuth(""), config: `model_provider = "azure" -model = "gpt-5.2" +model = "gpt-5.4" model_reasoning_effort = "high" disable_response_storage = true @@ -113,7 +113,7 @@ requires_openai_auth = true`, config: generateThirdPartyConfig( "aihubmix", "https://aihubmix.com/v1", - "gpt-5.2", + "gpt-5.4", ), endpointCandidates: [ "https://aihubmix.com/v1", @@ -128,7 +128,7 @@ requires_openai_auth = true`, config: generateThirdPartyConfig( "dmxapi", "https://www.dmxapi.cn/v1", - "gpt-5.2", + "gpt-5.4", ), endpointCandidates: ["https://www.dmxapi.cn/v1"], isPartner: true, // 合作伙伴 @@ -143,7 +143,7 @@ requires_openai_auth = true`, config: generateThirdPartyConfig( "packycode", "https://www.packyapi.com/v1", - "gpt-5.2", + "gpt-5.4", ), endpointCandidates: [ "https://www.packyapi.com/v1", @@ -161,7 +161,7 @@ requires_openai_auth = true`, config: generateThirdPartyConfig( "cubence", "https://api.cubence.com/v1", - "gpt-5.2", + "gpt-5.4", ), endpointCandidates: [ "https://api.cubence.com/v1", @@ -184,7 +184,7 @@ requires_openai_auth = true`, config: generateThirdPartyConfig( "aigocode", "https://api.aigocode.com", - "gpt-5.2", + "gpt-5.4", ), endpointCandidates: ["https://api.aigocode.com"], isPartner: true, // 合作伙伴 @@ -200,7 +200,7 @@ requires_openai_auth = true`, config: generateThirdPartyConfig( "rightcode", "https://right.codes/codex/v1", - "gpt-5.2", + "gpt-5.4", ), category: "third_party", isPartner: true, @@ -216,7 +216,7 @@ requires_openai_auth = true`, config: generateThirdPartyConfig( "aicodemirror", "https://api.aicodemirror.com/api/codex/backend-api/codex", - "gpt-5.2", + "gpt-5.4", ), endpointCandidates: [ "https://api.aicodemirror.com/api/codex/backend-api/codex", @@ -235,7 +235,7 @@ requires_openai_auth = true`, config: generateThirdPartyConfig( "aicoding", "https://api.aicoding.sh", - "gpt-5.3-codex", + "gpt-5.4", ), endpointCandidates: ["https://api.aicoding.sh"], isPartner: true, @@ -251,7 +251,7 @@ requires_openai_auth = true`, config: generateThirdPartyConfig( "crazyrouter", "https://crazyrouter.com/v1", - "gpt-5.3-codex", + "gpt-5.4", ), endpointCandidates: ["https://crazyrouter.com/v1"], isPartner: true, @@ -267,7 +267,7 @@ requires_openai_auth = true`, config: generateThirdPartyConfig( "sssaicode", "https://node-hk.sssaicode.com/api/v1", - "gpt-5.3-codex", + "gpt-5.4", ), endpointCandidates: [ "https://node-hk.sssaicode.com/api/v1", @@ -340,7 +340,7 @@ requires_openai_auth = true`, config: generateThirdPartyConfig( "openrouter", "https://openrouter.ai/api/v1", - "gpt-5.2", + "gpt-5.4", ), category: "aggregator", icon: "openrouter", diff --git a/src/config/codexTemplates.ts b/src/config/codexTemplates.ts index 24913e9d..b697c544 100644 --- a/src/config/codexTemplates.ts +++ b/src/config/codexTemplates.ts @@ -14,7 +14,7 @@ export interface CodexTemplate { */ export function getCodexCustomTemplate(): CodexTemplate { const config = `model_provider = "custom" -model = "gpt-5.2" +model = "gpt-5.4" model_reasoning_effort = "high" disable_response_storage = true diff --git a/src/config/opencodeProviderPresets.ts b/src/config/opencodeProviderPresets.ts index 55e89b5b..d20bd5f5 100644 --- a/src/config/opencodeProviderPresets.ts +++ b/src/config/opencodeProviderPresets.ts @@ -124,174 +124,11 @@ export const OPENCODE_PRESET_MODEL_VARIANTS: Record< ], "@ai-sdk/openai": [ { - id: "gpt-5", - name: "GPT-5", + id: "gpt-5.4", + name: "GPT-5.4", contextLimit: 400000, outputLimit: 128000, modalities: { input: ["text", "image"], output: ["text"] }, - variants: { - low: { - reasoningEffort: "low", - reasoningSummary: "auto", - textVerbosity: "low", - }, - medium: { - reasoningEffort: "medium", - reasoningSummary: "auto", - textVerbosity: "medium", - }, - high: { - reasoningEffort: "high", - reasoningSummary: "auto", - textVerbosity: "high", - }, - }, - }, - { - id: "gpt-5.1", - name: "GPT-5.1", - contextLimit: 400000, - outputLimit: 272000, - modalities: { input: ["text", "image"], output: ["text"] }, - variants: { - low: { - reasoningEffort: "low", - reasoningSummary: "auto", - textVerbosity: "low", - }, - medium: { - reasoningEffort: "medium", - reasoningSummary: "auto", - textVerbosity: "medium", - }, - high: { - reasoningEffort: "high", - reasoningSummary: "auto", - textVerbosity: "high", - }, - }, - }, - { - id: "gpt-5.1-codex", - name: "GPT-5.1 Codex", - contextLimit: 400000, - outputLimit: 128000, - modalities: { input: ["text", "image"], output: ["text"] }, - options: { include: ["reasoning.encrypted_content"], store: false }, - variants: { - low: { - reasoningEffort: "low", - reasoningSummary: "auto", - textVerbosity: "medium", - }, - medium: { - reasoningEffort: "medium", - reasoningSummary: "auto", - textVerbosity: "medium", - }, - high: { - reasoningEffort: "high", - reasoningSummary: "auto", - textVerbosity: "medium", - }, - }, - }, - { - id: "gpt-5.1-codex-max", - name: "GPT-5.1 Codex Max", - contextLimit: 400000, - outputLimit: 128000, - modalities: { input: ["text", "image"], output: ["text"] }, - options: { include: ["reasoning.encrypted_content"], store: false }, - variants: { - low: { - reasoningEffort: "low", - reasoningSummary: "auto", - textVerbosity: "medium", - }, - medium: { - reasoningEffort: "medium", - reasoningSummary: "auto", - textVerbosity: "medium", - }, - high: { - reasoningEffort: "high", - reasoningSummary: "auto", - textVerbosity: "medium", - }, - xhigh: { - reasoningEffort: "xhigh", - reasoningSummary: "auto", - textVerbosity: "medium", - }, - }, - }, - { - id: "gpt-5.2", - name: "GPT-5.2", - contextLimit: 400000, - outputLimit: 128000, - modalities: { input: ["text", "image"], output: ["text"] }, - variants: { - low: { - reasoningEffort: "low", - reasoningSummary: "auto", - textVerbosity: "medium", - }, - medium: { - reasoningEffort: "medium", - reasoningSummary: "auto", - textVerbosity: "medium", - }, - high: { - reasoningEffort: "high", - reasoningSummary: "auto", - textVerbosity: "medium", - }, - xhigh: { - reasoningEffort: "xhigh", - reasoningSummary: "auto", - textVerbosity: "medium", - }, - }, - }, - { - id: "gpt-5.2-codex", - name: "GPT-5.2 Codex", - contextLimit: 400000, - outputLimit: 128000, - modalities: { input: ["text", "image"], output: ["text"] }, - options: { include: ["reasoning.encrypted_content"], store: false }, - variants: { - low: { - reasoningEffort: "low", - reasoningSummary: "auto", - textVerbosity: "medium", - }, - medium: { - reasoningEffort: "medium", - reasoningSummary: "auto", - textVerbosity: "medium", - }, - high: { - reasoningEffort: "high", - reasoningSummary: "auto", - textVerbosity: "medium", - }, - xhigh: { - reasoningEffort: "xhigh", - reasoningSummary: "auto", - textVerbosity: "medium", - }, - }, - }, - { - id: "gpt-5.3-codex", - name: "GPT-5.3 Codex", - contextLimit: 400000, - outputLimit: 128000, - modalities: { input: ["text", "image"], output: ["text"] }, - options: { include: ["reasoning.encrypted_content"], store: false }, variants: { low: { reasoningEffort: "low", @@ -1110,11 +947,7 @@ export const opencodeProviderPresets: OpenCodeProviderPreset[] = [ apiKey: "", }, models: { - "gpt-5.2": { name: "GPT-5.2" }, - "gpt-5.2-codex": { - name: "GPT-5.2 Codex", - options: { include: ["reasoning.encrypted_content"], store: false }, - }, + "gpt-5.4": { name: "GPT-5.4" }, }, }, category: "third_party", diff --git a/src/config/universalProviderPresets.ts b/src/config/universalProviderPresets.ts index 5bb85433..1f829308 100644 --- a/src/config/universalProviderPresets.ts +++ b/src/config/universalProviderPresets.ts @@ -46,7 +46,7 @@ const NEWAPI_DEFAULT_MODELS: UniversalProviderModels = { opusModel: "claude-sonnet-4-20250514", }, codex: { - model: "gpt-4o", + model: "gpt-5.4", reasoningEffort: "high", }, gemini: { diff --git a/src/types/omo.ts b/src/types/omo.ts index fa0dd7df..406b8c02 100644 --- a/src/types/omo.ts +++ b/src/types/omo.ts @@ -37,7 +37,7 @@ export const OMO_BUILTIN_AGENTS: OmoAgentDef[] = [ display: "Hephaestus", descKey: "omo.agentDesc.hephaestus", tooltipKey: "omo.agentTooltip.hephaestus", - recommended: "gpt-5.3-codex", + recommended: "gpt-5.4", group: "main", }, { @@ -61,7 +61,7 @@ export const OMO_BUILTIN_AGENTS: OmoAgentDef[] = [ display: "Oracle", descKey: "omo.agentDesc.oracle", tooltipKey: "omo.agentTooltip.oracle", - recommended: "gpt-5.2", + recommended: "gpt-5.4", group: "sub", }, { @@ -101,7 +101,7 @@ export const OMO_BUILTIN_AGENTS: OmoAgentDef[] = [ display: "Momus", descKey: "omo.agentDesc.momus", tooltipKey: "omo.agentTooltip.momus", - recommended: "gpt-5.2", + recommended: "gpt-5.4", group: "sub", }, { @@ -126,14 +126,14 @@ export const OMO_BUILTIN_CATEGORIES: OmoCategoryDef[] = [ display: "Ultrabrain", descKey: "omo.categoryDesc.ultrabrain", tooltipKey: "omo.categoryTooltip.ultrabrain", - recommended: "gpt-5.3-codex", + recommended: "gpt-5.4", }, { key: "deep", display: "Deep", descKey: "omo.categoryDesc.deep", tooltipKey: "omo.categoryTooltip.deep", - recommended: "gpt-5.3-codex", + recommended: "gpt-5.4", }, { key: "artistry", @@ -327,7 +327,7 @@ export const OMO_SLIM_BUILTIN_AGENTS: OmoAgentDef[] = [ display: "Oracle", descKey: "omo.slimAgentDesc.oracle", tooltipKey: "omo.slimAgentTooltip.oracle", - recommended: "gpt-5.2", + recommended: "gpt-5.4", group: "sub", }, { @@ -359,7 +359,7 @@ export const OMO_SLIM_BUILTIN_AGENTS: OmoAgentDef[] = [ display: "Fixer", descKey: "omo.slimAgentDesc.fixer", tooltipKey: "omo.slimAgentTooltip.fixer", - recommended: "gpt-5.3-codex", + recommended: "gpt-5.4", group: "sub", }, ];