news 2026/6/10 4:08:37

大模型流式输出Streaming Output

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
大模型流式输出Streaming Output

1. 概述

1.1 什么是流式输出(Streaming Output)

流式输出(Streaming Output)是一种服务端响应模式:

服务端在大模型生成内容的过程中,将已生成的部分实时、分批次返回给客户端,而不是等待全部内容生成完毕后再一次性返回。

在大模型(LLM)场景中,生成过程通常是token-by-token的,因此天然适合流式返回。


1.2 为什么需要流式输出

在非流式模式下:

  • 用户必须等待模型完全生成结束
  • 请求时间稍长就会被误认为“卡死”

流式输出的核心目标是:

  • 降低首字延迟(TTFB)
  • 显著提升交互体验
  • 让用户感知模型正在工作

2. 流式输出的核心价值

2.1 用户体验层面

指标非流式流式输出
首字响应极低
可感知过程
等待焦虑
交互感

2.2 技术层面

  • 避免一次性返回超大 JSON
  • 减少内存峰值占用
  • 支持“边算边推”,提升吞吐
  • 更符合大模型的生成机制

3. 工作原理(机制解析)

3.1 非流式请求流程

Client Request ↓ LLM 全量生成 ↓ Server 一次性返回完整结果

缺点:

  • 首字延迟 = 总生成时间

3.2 流式输出请求流程

Client Request ↓ LLM 生成 token1 → 推送 LLM 生成 token2 → 推送 LLM 生成 token3 → 推送 ... LLM 结束 → 结束信号

关键点:

  • 同一个连接
  • 多次写响应
  • 不中断 HTTP 会话

4. 流式输出的技术本质

4.1 并不是多次请求

流式输出不是轮询,也不是多次 HTTP 请求,而是:

  • 一次请求
  • 一个连接
  • 多次写出(chunk)

4.2 常见底层实现机制

技术说明适用性
Chunked TransferHTTP 分块传输底层基础
SSEServer-Sent Events⭐⭐⭐⭐⭐(推荐)
WebSocket全双工通信⭐⭐⭐
Reactive StreamFlux / Flow⭐⭐⭐⭐

5. 主流实现方式对比

5.1 SSE(Server-Sent Events)——首选

特点:

  • 基于 HTTP
  • 单向(Server → Client)
  • 原生支持自动重连
  • 非常适合 AI 文本流

AI 场景适配度:★★★★★


5.2 WebSocket

特点:

  • 双向通信
  • 支持中途打断生成

问题:

  • 实现复杂
  • 运维成本高
  • 对短连接不友好

5.3 StreamingResponseBody(Servlet)

特点:

  • 传统 Spring MVC 可用
  • 不依赖 WebFlux

限制:

  • 线程阻塞
  • 并发能力有限

6. Java / Spring 后端实现示例

6.1 基于 WebFlux + SSE(推荐)

@GetMapping(value="/ai/stream",produces=MediaType.TEXT_EVENT_STREAM_VALUE)publicFlux<String>stream(){returnFlux.just("你","好",",","世","界").delayElements(Duration.ofMillis(300));}

返回效果(客户端实时接收):

你 好 , 世 界

6.2 基于 StreamingResponseBody

@GetMapping("/ai/stream")publicStreamingResponseBodystream(){returnoutputStream->{for(Strings:List.of("你","好","世界")){outputStream.write(s.getBytes(StandardCharsets.UTF_8));outputStream.flush();Thread.sleep(300);}};}

7. 前端接收方式

7.1 SSE(EventSource)

constes=newEventSource('/ai/stream');es.onmessage=(event)=>{console.log(event.data);};

7.2 fetch + ReadableStream

constresponse=awaitfetch('/ai/stream');constreader=response.body.getReader();while(true){const{value,done}=awaitreader.read();if(done)break;console.log(newTextDecoder().decode(value));}

8. 大模型 API 中的流式输出

8.1 通用请求参数

{"stream":true}

8.2 通用返回结构(示意)

{"delta":"你"}{"delta":"好"}{"delta":"世界"}{"finish_reason":"stop"}

9. 典型业务场景

  1. AI 对话系统(ChatGPT 类)
  2. 长文本生成
  3. 代码生成 / 补全
  4. 推理过程可视化
  5. 实时分析 / 日志输出

10. 生产级注意事项(重点)

10.1 错误处理

  • 可能在中途失败

  • 已经返回部分内容

  • 需要:

    • error event
    • finish_reason

10.2 连接生命周期管理

  • 客户端主动断开

  • 服务端必须:

    • 停止模型生成
    • 释放资源

10.3 超时与限流

  • 设置最大生成时间
  • 防止长连接耗尽资源

11. 架构设计建议(AI 场景)

Client ↓ SSE API Gateway ↓ AI Service ↓ stream LLM Provider

建议:

  • 网关支持长连接
  • AI 服务单独限流

12. 总结

一句话总结:

流式输出不是为了更快完成生成,而是为了让用户更早、更持续地“看到结果”,
用架构复杂度换取极大的交互体验提升。


13. 延伸阅读方向

  • Spring AI Streaming ChatModel
  • SSE vs WebSocket 选型
  • AI 生成中断与取消设计
  • Token 级别计费与统计

欢迎关注微信公众号,一起学习成长

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 19:57:15

C156D飞腾加固计算机在国产化计算体系中的应用定位

在国产化计算平台逐步落地的过程中&#xff0c;移动计算设备既需要满足自主可控要求&#xff0c;也需要具备在复杂环境中稳定运行的能力。 C156D飞腾加固计算机&#xff0c;正是在这一应用背景下形成的国产化加固计算设备方案。一、产品定位&#xff1a;面向国产化应用的加固计…

作者头像 李华
网站建设 2026/6/9 19:59:00

KAIST AI团队革命性突破:无需深度估计也能让视频自由变换视角

这项由韩国科学技术院&#xff08;KAIST&#xff09;人工智能实验室的金敏晶、金正豪、陈昊英、郑俊河以及朱在乙教授团队完成的研究&#xff0c;于2025年12月18日发表在计算机视觉顶级会议arXiv上&#xff0c;论文编号为arXiv:2512.17040v1。有兴趣深入了解的读者可以通过该编…

作者头像 李华
网站建设 2026/6/9 18:53:10

CRMEB WxJava,微信生态开发外挂来袭!

“CRMEB技术圈大事件”——CRMEB多商户系统Java版接入WxJava&#xff0c;实现微信生态开发升级&#xff01;&#x1f680; 用户体验&#xff0c;丝滑到飞起~ ✅ 快速登录不卡壳&#xff1a;告别登录转圈圈/授权失败&#xff0c;将复杂技术验证流程打包简化&#xff0c;丝滑登录…

作者头像 李华
网站建设 2026/6/9 20:05:26

Aneiang.Pa 代理池(Proxy Pool)功能与 ASP.NET Core Web API 集成实战

面向&#xff1a;使用 Aneiang.Pa 进行热榜/动态爬取&#xff0c;希望在生产环境里更稳定地跑任务&#xff0c;并通过 ASP.NET Core Web API 对外提供统一接口的同学。 项目地址&#xff1a; GitHub&#xff1a;https://github.com/AneiangSoft/Aneiang.PaGitee&#xff1a;htt…

作者头像 李华
网站建设 2026/6/9 21:19:47

2026备考CAIE:我的“认知破壁”实战

年初我决定备考CAIE注册人工智能工程师认证时&#xff0c;心里很矛盾&#xff1a;想系统掌握AI&#xff0c;又担心自己纯文科背景学不会。这种 “知识焦虑”与“转型决心” 的冲突&#xff0c;相信很多人都有。真正让我下定决心的&#xff0c;是一份行业报告的数据&#xff1a;…

作者头像 李华