fix(text): 文本生成 - 修复声明式协议流式请求与增量输出 (#558)

Original-Commit: b2fef297e8a50d519a0480d120a32eb81234a48f
fix(text): 文本生成 - 修复声明式协议流式请求与增量输出
This commit is contained in:
Codex
2026-09-20 23:18:26 +08:00
committed by ddCat
parent 19c9a207c9
commit 15946e5a86
5 changed files with 178 additions and 2 deletions

View File

@@ -44,6 +44,12 @@ SSE 缓存 key 包含用户、任务和 `after` 游标,回源仍检查归属
这是合并相同游标的轮询读取,不是事件驱动推送;不同游标和不同实例仍可能分别查询数据库。连接总量、客户端重连退避及任务删除后的缓存失效仍需后续治理。
## 上游文本流
创作台 / 画布文本任务开启流式输出且模型允许流式时,声明式 `chat-completion`、`openai-response` 和 `claude-api` 协议会发送 `stream=true`,通过宿主网络层实时解析 SSE 并发布文本增量。Chat Completions 同时请求 usage 终态块;普通 JSON 响应仍由插件声明的响应映射解析。插件的请求字段、路径、鉴权以及宿主的 SSRF、取消和审计边界保持有效,未知协议不套用这些 SSE 格式。
流式传输可减少等待完整正文期间的网关超时,但不能保证上游及时发出首个数据块。收到 HTTP 524 或上下文取消时仍返回真实失败,不自动重发生成请求;计费结果不明确的订单保留待核对状态,缺少上游任务 ID 的历史请求无法靠本次修复自动找回。
## worker 与渠道槽位
- worker 全局槽位由固定 45 分钟 TTL 改为 1 分钟租约,每 15 秒与数据库任务租约一起续期;数据库任务租约仍为 45 秒。