Skip to content

fix(codex/azure): 修复 Azure 认证与配置兼容,更新 Foundry v1 预设并避免 Test Model 误报#1309

Open
iAladdin wants to merge 4 commits intofarion1231:mainfrom
iAladdin:main
Open

fix(codex/azure): 修复 Azure 认证与配置兼容,更新 Foundry v1 预设并避免 Test Model 误报#1309
iAladdin wants to merge 4 commits intofarion1231:mainfrom
iAladdin:main

Conversation

@iAladdin
Copy link
Copy Markdown

@iAladdin iAladdin commented Mar 5, 2026

背景

在通过 cc-switch 使用 Azure Codex 时,出现了两类问题:

  1. Test Model 偶发 DeploymentNotFound(实际可用)。
  2. Azure key/配置在导入、表单编辑、脚本测试等链路上存在不一致,导致“部分功能可用、部分功能报错”。

本 PR 目标是补齐 Codex + Azure 的配置与凭据兼容,统一行为并降低误报。

变更摘要

1) Codex 凭据兼容(OPENAI/AZURE 双 key)

  • 后端和前端统一支持:
    • OPENAI_API_KEY
    • AZURE_OPENAI_API_KEY
  • 覆盖链路:provider 解析、deeplink 导入、表单状态、usage script 测试。

2) Azure 预设同步 Foundry v1

  • Azure Codex 预设更新为 v1 Responses 形态:
    • base_url 使用 /openai/v1
    • env_key 使用 AZURE_OPENAI_API_KEY
    • 默认模型更新为 gpt-5.3-codex
    • 移除旧版 query api-version 写法

3) 修复 Test Model 的模型提取误报

  • 改进 Codex model 提取逻辑:
    • 优先按 TOML 语义解析 model
    • 保留多行 fallback 解析
  • 避免因“model 不在首行”导致回退到默认模型,从而触发 DeploymentNotFound 误判。

关键文件与影响

  • src-tauri/src/services/provider/mod.rs
    Codex 凭据提取支持 Azure key。
  • src-tauri/src/deeplink/provider.rs
    Deeplink 导入支持 Azure key;Codex 默认模型更新。
  • src/components/providers/forms/hooks/useCodexConfigState.ts
    表单读写统一支持双 key,避免 Azure key 丢失。
  • src/components/providers/forms/CodexFormFields.tsx
    文案更新(模型 placeholder)。
  • src/components/UsageScriptModal.tsx
    Usage Script 测试可正确读取 Azure key。
  • src/config/codexProviderPresets.ts
    Azure 预设切换到 Foundry v1 配置。

兼容性与风险

  • 对非 Azure 场景保持向后兼容(保留 OPENAI_API_KEY)。
  • 仅新增 Azure key 识别路径,不移除旧逻辑。
  • 配置读取优先级清晰,避免“有 key 但被识别为空”的问题。

验证

  • pnpm typecheck 通过
  • cargo check -p cc-switch 通过
  • 相关单测通过(含 speedtest/stream_check 新增与回归用例)

手动验证建议

  1. 使用 Azure 预设新建 Codex Provider,填入 Azure key,确认保存后可正常测试。
  2. 使用 Deeplink 导入含 AZURE_OPENAI_API_KEY 的配置,确认 key/model/base_url 被正确识别。
  3. 在 Usage Script Modal 中测试,确认可读取 Azure key 并执行。
  4. 对比非 Azure Codex provider,确认未出现行为回归。

iAladdin added 4 commits March 6, 2026 00:00
- Updated `test_api_endpoints` to accept an optional `app` parameter for better endpoint management.
- Modified Codex settings to support both `OPENAI_API_KEY` and `AZURE_OPENAI_API_KEY`.
- Improved endpoint handling in `handle_chat_completions` and related functions to preserve original paths and query parameters.
- Added tests for new functionality in `SpeedtestService` and `ProxyService`.
- Updated UI components to reflect changes in API key handling and status code reporting.
- Enhanced localization files to include new status code messages.
# Conflicts:
#	docs/user-manual/en/2-providers/2.1-add.md
#	docs/user-manual/ja/2-providers/2.1-add.md
#	docs/user-manual/zh/2-providers/2.1-add.md
#	src-tauri/src/services/proxy.rs
#	src-tauri/src/services/stream_check.rs
#	src/components/providers/forms/CodexFormFields.tsx
#	src/config/codexProviderPresets.ts
#	src/i18n/locales/en.json
#	src/i18n/locales/ja.json
#	src/i18n/locales/zh.json
…erations

feat(auth): add Azure OpenAI API Key authentication strategy
feat(codex): support Azure OpenAI endpoints and API versioning
@iAladdin
Copy link
Copy Markdown
Author

iAladdin commented Mar 19, 2026

增加 Azure model 在 Codex App 26.317.21539 上的兼容性

@farion1231
Copy link
Copy Markdown
Owner

很抱歉让你等了这么久。这个项目目前只有我一个人在维护,之前有段时间确实没能及时跟进。这是我的错。你的贡献对项目很重要,我会安排 review。如果需要 rebase 到最新代码,告诉我或者我直接来处理都可以。感谢你的付出和耐心。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants