实验 / 024

Java LLM 实践(九):取消请求后,旧回答为什么还会覆盖新会话?

18 种固定线程交错,验证流式预览、完成和错误回调的请求归属,以及取消和有限幂等的边界。

已完成 ·

实验结果

GitHub ↗

01 / 问题

18 种固定线程交错,验证流式预览、完成和错误回调的请求归属,以及取消和有限幂等的边界。

方法

真实工作线程与主线程,9种固定交错×2策略,合成内存SSE复用A6解析器。

结果

18次执行:朴素策略7种违反契约,请求归属检查9种通过;另有7组边界检查。

观察

旧预览和旧错误即使没有最终覆盖页面,也可能破坏中间状态;完整回答不保证仍属于当前会话。

结论

预览、完成和失败都应在同一临界区验证请求归属并修改状态。

局限

本地固定交错,不是在线故障率;取消不保证停止计费;ID窗口仅单进程有界保留。

复现

固定代码和原始记录见仓库;正文给出运行、独立审计和回放命令。

继续探索

继续探索

  1. 工程案例

    Java LLM 实践(九):取消请求后,旧回答为什么还会覆盖新会话?

    18 种固定线程交错,验证流式预览、完成和错误回调的请求归属,以及取消和有限幂等的边界。

    10 分钟已发布
  2. 项目 / 002

    Java LLM 实践集

    Java 会话、请求重试与持久化边界,以及注意力、缓存成本和量化误差的可复现实验。

    构建中
  3. 工程案例

    Java LLM 实践(八):流式回答断了,半句答案该不该进入历史?

    22 个回环 HTTP 案例,验证 UTF-8、SSE 分帧、取消与异常结束,把逐步预览和完整历史提交分开。

    11 分钟已发布
  4. 实战教程

    Java 8 调用大语言模型:从第一次请求到多轮对话

    用三个真实运行的 Java Demo,理解模型请求、JSON 解析、读取超时与对话历史。

    15 分钟已发布

← 返回目录