1
bv 10 小时 45 分钟前
给你提示一点:req.Context()
|
2
raycheung 10 小时 43 分钟前
|
3
DefoliationM 10 小时 32 分钟前 via Android 哥们基础不牢呀,用 context 就行了。
|
4
cryptovae 10 小时 14 分钟前 为了解决 A 又引入了 B ,我真是服了
简单事简单做,LLM 流式输出,管它前端断不断,最终结果肯定要入库,等前端用户刷新的时候自己去轮训这个 message 结果就行了 |
6
boolean1135 8 小时 18 分钟前 via Android
mark 一下,到时候回家学习学习 AI 开发
|
7
cryptovae 7 小时 3 分钟前
@yoshiyuki 你得的回答完全不切合主题,题主要的是异常断开后,能继续恢复,你给我说浪费 token 的事,在没有用户主动点击取消的情况下,用户只会觉得你凭什么不给我回答了,比如 deepseek ,chatgpt 都会在刷新页面自动接着回答
|
8
Charlie17Li 3 小时 43 分钟前
@yoshiyuki 如果是我我会刷新一下,不想多打一点字
|
9
Junian OP 谢谢各位反馈,统一回一下。
@bv @DefoliationM req.Context() 确实能感知客户端断开,这个我清楚。但我要解决的不是"知道客户端走了",是断开之后的事: 1. 重连后怎么把之前的 chunk 补回去( replay ) 2. 生产者和消费者不在同一个进程甚至不在同一台机器 3. 用户在 A 节点点取消,B 节点的生成要能停 单靠 context 搞不定这几个。streamhub 底下该用 context 的地方也在用,上面多了一层跨实例的状态管理。 @raycheung durable-streams 是一个协议规范,定义 HTTP 层 offset-based streaming 的标准。streamhub 是直接用 Redis Streams 做存储的 Go 库,层级不太一样,但确实解决的问题有重叠。 @cryptovae 最终结果入库+轮询在生成完之后确实没问题。流式输出的点在于生成过程中就要实时推,不是攒完再返回。刷新后自动接上( deepseek/chatgpt 就是这么做的)才是这个库在解决的场景。 |