mirror of
https://github.com/Wei-Shaw/sub2api.git
synced 2026-10-27 08:05:33 +00:00
forwardOpenAIImagesAPIKey 走的是 detachStreamUpstreamContext(ctx, parsed.Stream), 该函数在非流式时原样返回请求 context(gateway_usage_billing.go:488)。于是客户端 中途断开会连带取消已经在出图的上游调用:上游那边图已生成并计费,网关这边拿到 context canceled,记 502,result 为 nil,handler 的 result.ImageCount > 0 兜底 无法命中,本次请求不产生扣费。 生图是长耗时(数十秒)且上游侧已产生实际成本的操作,与普通非流式 chat 不同: 提前取消并不能省下上游开销,只会丢掉已付费的产出。 同一端点的 OAuth 分支 forwardOpenAIImagesOAuth(openai_images_responses.go:1690) 以及同属媒体生成的 grok_media.go 本来就用无条件脱钩的 detachUpstreamContext, OpenAI 网关侧 13 个转发点里只有这一处是例外。这里对齐。 Fixes #5411