
sub2api 的调度快照投影白名单漏了 openai_capabilities,v0.2.18 与主干里都还空着:Seedance 走网关恒选不到号,只配 embeddings 的账号在候选层被放宽——本期给出三类账号是否要动,以及两步自查。
Refreshed against main 5c185c5c 讲的就是这件事。openai_passthrough 的那张单下午三点开出,两笔关联提交六分钟内就跟上,第二天被维护者关成已完成。 4sched:acc:<id> 是完整体,选中账号后转发时读它。sched:meta:<id> 是精简投影,候选过滤时读它。filterSchedulerCredentials 生成,这是一份白名单:列出来的键搬过去,其余丢掉。 5
backend/internal/repository/scheduler_cache.go 第 1245–1257 行:第 1251 行是主键名单,第 1255 行是 Gemini 显式缓存要用的四个键,base_url 在里面。openai_capabilities 两处都没有。base_url、model_mapping、account_scheduling_threshold,独独没有 openai_capabilities。
r266-tech/sub2api @ codex/scheduler-endpoint-capabilities 的同一段:第 1251 行末尾多了 "openai_capabilities",其余一字未动。6
internal/service/account.go 第 1916–1934 行:Seedance 要四件事同时成立——能力集里有 seedance、平台是 OpenAI、类型是 API Key、base_url 非空(第 1920–1923 行)。configured["seedance"] 恒为 false。 9grok_media.account_select_failed,客户端收到 503 seedance_no_eligible_account。 10embeddings 的账号因此在候选里被当成没配过能力,chat 请求也会把它挑进来。
GetByID 从数据库读整号,第 1642 行拿这份整号重跑能力判定,不通过就 return nil 换下一个候选。capability_mismatch 只跟着 Seedance 走。| 你的情况 | 现在会发生什么 | 怎么办 |
|---|---|---|
没配 openai_capabilities | 不受影响 | 不用动 |
配了 seedance | 选号恒失败,503 | 自己打这一行,或等它合 |
只配了 embeddings / chat_completions | 候选层放宽,转发前被挡回 | 不用动,别当故障查 |
scheduler_cache.go 第 1251 行那个字符串数组,把一个 "openai_capabilities" 加进名单,重建即可。补丁分支上已经带着现成的改法和测试。redis-cli GET sched:acc:<id> 的 Credentials 里有 openai_capabilities,sched:meta:<id> 里没有,就是命中。capability_mismatch 与 seedance_no_eligible_account。后者一出现,Seedance 就走不通。| 仓库 | 当前版本 | 发布(北京) | 本窗口 |
|---|---|---|---|
| sub2api | v0.2.18 | 10-23 15:44 | 只有 #7761 一次 rebase |
| CLIProxyAPI | v8.0.41 14 | 10-24 02:25 | 零条目 |
| codex-proxy | v2.1.20 15 | 10-23 03:56 | 零条目 |
| codex2api | v3.1.1 16 | 10-17 05:42 | 零条目 |
/status 才作数。 22base_url 那半已经在 0.2.16 补上。他升到 0.2.16 以上后若 Seedance 仍然失败,这一个键就是唯一的解释。github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
status.openai.com
status.anthropic.com
status.cloud.google.com
codex-reset.com
opentherank.com
codex-reset.com
github.com
github.com
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.