Commit a785f3e
fix(config): 补齐 qwen_intl/minimax/minimax_intl 的 gated fallback(对偶 Project-N-E-K-O#873) (Project-N-E-K-O#876)
* fix(config): qwen_intl/minimax/minimax_intl 也走 gated fallback,对偶 Project-N-E-K-O#873
PR Project-N-E-K-O#873 修掉了 assistApiKey 广播污染,但只对 12 个 provider 统一走了
_fb(),剩下 qwen_intl / minimax / minimax_intl 三个字段仍然是裸
core_cfg.get(...)。结果是:当用户把 coreApi 或 assistApi 选成这三个
provider 之一时,ASSIST_API_KEY_*_INTL / MINIMAX 拿不到 CORE_API_KEY
的 fallback —— 对其他 provider 是"选中就 fallback",对这三个是"永不
fallback",行为不对偶。
本 PR 让这三个字段也走 _fb()。_fallback_providers 集合已经做了 gating,
fallback 只在用户实际选中该 provider 时才触发,不会回归 Project-N-E-K-O#873 修掉的
广播污染。两处文件(config_router GET 端点 + config_manager.get_core_config)
对偶修改。
顺手修掉 test_missing_keys_fallback_to_core_key —— 该测试是 Project-N-E-K-O#873 之前
的老行为(断言所有 provider 都 fallback),Project-N-E-K-O#873 merge 时漏改,之前跑
就已经红。新测试覆盖:
- test_missing_keys_gated_fallback_to_core_key: 仅选中的 provider fallback,
其余槽位保持空,验证不再广播
- test_special_providers_fallback_when_selected (parametrize 3 个):
qwen_intl / minimax / minimax_intl 被选中时也能 fallback
* fix(config): 收 Codex P1 反馈 — minimax 不做 fallback
@chatgpt-codex-connector 指出:MiniMax 是 assist-only(TTS 专用),
不在 coreApi 候选集里(测试 expected_core 不含 minimax)。所以
coreApiKey 永远不是 minimax 兼容的 key。给 ASSIST_API_KEY_MINIMAX*
加 fallback 会把无效 key 塞进 TTS 凭证槽位,get_tts_api_key('minimax*')
就会用一个 qwen/openai 的 key 去调 minimax → 401,反而掩盖"未配置
minimax key"的真实提示。
Revert minimax/minimax_intl 的 fallback,加注释说清楚为什么排除。
qwen_intl 保留 fallback —— qwen_intl 是合法的 coreApi,migration
场景成立(老版本 core_config.json 只有 coreApiKey 的情况)。
测试对齐:
- test_minimax_never_fallbacks 替代原 parametrize 的 minimax case:
即使 assistApi=minimax 也要保持 ''
- test_qwen_intl_fallback_when_selected 单独保留 qwen_intl 的正向断言
* test(config): parametrize test_minimax_never_fallbacks 覆盖 minimax_intl
CodeRabbit nitpick:原测试只驱动 assistApi='minimax',加上 'minimax_intl'
变体防'仅国际版误回退'的偏置回归。
---------
Co-authored-by: Hongzhi Wen <cartabio.coder1@gmail.com>1 parent 1e33784 commit a785f3e
3 files changed
Lines changed: 50 additions & 18 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
573 | 573 | | |
574 | 574 | | |
575 | 575 | | |
576 | | - | |
| 576 | + | |
577 | 577 | | |
578 | 578 | | |
579 | 579 | | |
| |||
582 | 582 | | |
583 | 583 | | |
584 | 584 | | |
| 585 | + | |
| 586 | + | |
| 587 | + | |
585 | 588 | | |
586 | 589 | | |
587 | 590 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
78 | 78 | | |
79 | 79 | | |
80 | 80 | | |
81 | | - | |
82 | | - | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
83 | 84 | | |
84 | 85 | | |
85 | 86 | | |
86 | | - | |
| 87 | + | |
87 | 88 | | |
88 | 89 | | |
89 | 90 | | |
90 | | - | |
91 | | - | |
92 | | - | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
93 | 97 | | |
94 | 98 | | |
95 | | - | |
96 | | - | |
97 | | - | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
98 | 105 | | |
99 | 106 | | |
100 | | - | |
101 | | - | |
102 | | - | |
103 | | - | |
104 | | - | |
105 | | - | |
106 | | - | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
107 | 133 | | |
108 | 134 | | |
109 | 135 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1729 | 1729 | | |
1730 | 1730 | | |
1731 | 1731 | | |
1732 | | - | |
| 1732 | + | |
1733 | 1733 | | |
1734 | 1734 | | |
1735 | 1735 | | |
| |||
1738 | 1738 | | |
1739 | 1739 | | |
1740 | 1740 | | |
| 1741 | + | |
| 1742 | + | |
| 1743 | + | |
1741 | 1744 | | |
1742 | 1745 | | |
1743 | 1746 | | |
| |||
0 commit comments