当前位置: 首页 > news >正文

大模型SSE流式输出技术

文章目录

    • 背景:为什么需要流式输出
    • SSE 流式输出
      • 很多厂商还是小 chunk

背景:为什么需要流式输出

大模型的响应通常很长,比如几百甚至几千个 token,如果等模型一次性生成完才返回:

  • 延迟高:用户要等很久才能看到第一句话。
  • 体验差:尤其是在聊天、代码生成等场景,用户期望“边想边说”。
  • 内存压力大:服务器要先缓冲全部结果再返回。

因此很多厂商(OpenAI、DeepSeek、百度、阿里等)会用 流式输出:

  • 模型边生成边发送给客户端。
  • 用户前端边接收边渲染。

SSE 流式输出

SSE (Server-Sent Events) 是 HTTP 长连接 + 文本事件流 协议,由服务器持续推送数据给客户端,浏览器原生支持。

  • 数据格式:data: 开头,\n\n 结束
    SSE的核心就是在原本TCP的字节流基础上,通过定义特殊的分隔格式(比如每条事件以空行\n\n结束),来划分消息边界,方便浏览器端按事件逐条处理。
  • 单向:服务器 → 客户端
  • 基于 HTTP/1.1:不需要 WebSocket,也不需要额外握手
  • 自动重连:浏览器的 EventSource 会自动重连

报文示例:

HTTP/1.1 200 OK
Content-Type: text/event-stream
Cache-Control: no-cache
Connection: keep-alivedata: {"choices":[{"delta":{"content":"你"}}]}data: {"choices":[{"delta":{"content":"好"}}]}data: [DONE]

这里 data: 后面就是 JSON,每次推送一小段(chunk),最后 “[DONE]” 表示结束。

如果 chunk 粒度过小,确实会浪费资源,主要浪费在 网络 IO 开销 上。

很多厂商还是小 chunk

  • 体验优先:AI 聊天给人的“即时感”很重要,宁可多 IO 也要首字快。
  • 心理暗示:用户看到文字逐渐出现,会觉得模型在思考(即使真实情况是批量生成的)。
  • 大部分场景数据量小:和视频、文件传输比,这种文字流的带宽占用很低,浪费的部分能接受。
http://www.dtcms.com/a/322669.html

相关文章:

  • C++ 类模板
  • 使用langchain框架开发一个能调用工具的聊天助手Demo
  • MCU-基于TC397的启动流程
  • SQL基本
  • “自动报社保 + 查询导出 ” 的完整架构图和 Playwright C# 项目初始化模板
  • 2022 RoboCom 世界机器人开发者大赛-本科组(国赛)
  • 【阿里巴巴大数据实践之路学习记录】第十章-维度设计
  • 算法_python_学习记录_02
  • Docker大全
  • 通过 Docker 运行 Prometheus 入门
  • 开源智能手机安全相机推荐:Snap Safe
  • 数据结构(9)——排序
  • 【C++上岸】C++常见面试题目--数据结构篇(第十五期)
  • 搜索算法经典案例
  • SpringSecurity过滤器链全解析
  • navicat 连接docker容器里面mysql服务失败解决
  • 传输线的瞬时阻抗
  • UE破碎Chaos分配模型内部面材质
  • Jmeter性能测试之安装及启动Jmeter
  • Nginx 安全加固与服务监控体系
  • 如何无损压缩图片至原大小的10%?
  • ComfyUI——舒服地让大模型为我所用
  • 常用性能测试工具及使用方法介绍
  • 【内核配置】CONFIG_DEBUG_USER 配置项原理分析
  • 线程安全的单例模式,STL和智能指针
  • golang的二维数组
  • 直接插入排序算法:可视化讲解与C语言实现
  • 【R语言】单细胞数据整合质量评估(3)
  • Matlab 基于BP神经网络结合Bagging(BP-Bagging)集成算法的单变量时序预测 (单输入单输出)
  • Linux运维新手的修炼手扎之第26天