OpenAI 流式响应实战:用 stream=True 和 delta 解析让答案实时输出
OpenAI 流式响应实战用 streamTrue 和 delta 解析让答案实时输出【免费下载链接】openai-pythonThe official Python library for the OpenAI API项目地址: https://gitcode.com/GitHub_Trending/op/openai-python聊天界面里用户盯着空白屏 10 秒才看到第一个字——这就是非流式调用的体验。换成 openai-python只要多传一个streamTrueOpenAI 流式响应就会把答案按 SSE 分块送达边收边用。读完你能让 Chat Completions 实时输出答案还会攒出完整文本、随时掐断流。⚡ 流式响应为什么快SSE 分块传输原理非流式请求的逻辑是模型把整篇回答生成完才打包成一个大 JSON 交给你。流式请求的逻辑反过来服务端一边生成一边切块通过 SSEServer-Sent Events长连接把小块持续推给客户端先收先处理。openai-python 把这个细节包住了。源码里的Stream/AsyncStream类见src/openai/_streaming.py负责逐行读取 SSE 事件、还原成 Python 对象你拿到的只是一个可迭代的stream对象不用自己拼 HTTP 长连接。对比维度非流式streamFalse流式streamTrue首个可见结果耗时等整篇生成完秒级起步首个分块到达即显示数据形态一次性完整 JSON一串 ChatCompletionChunk 小对象内存与等待感全量驻留用户干等边处理边释放用户看着逐字出现适合场景短回答、批处理脚本实时对话、长文生成、打字机展示接入复杂度其实没差别——同一套create调用只是多一个布尔参数和一层 for 循环。跑通第一个流式请求streamTrue 同步与异步API key 放在环境变量OPENAI_API_KEY里即可不必写进代码。# 同步版拿到 stream 后直接 for 遍历 from openai import OpenAI client OpenAI() # key 读自环境变量 OPENAI_API_KEY stream client.chat.completions.create( modelgpt-4o-mini, messages[{role: user, content: 一句话解释 SSE}], streamTrue, ) for chunk in stream: piece chunk.choices[0].delta.content # 取本块新增内容 if piece: print(piece, end, flushTrue)异步版把for换成async forcreate前面多一个await其余逻辑一致# 异步版最短可用形态 import asyncio from openai import AsyncOpenAI client AsyncOpenAI() async def main(): stream await client.chat.completions.create( modelgpt-4o-mini, messages[{role: user, content: 你好}], streamTrue, ) async for chunk in stream: print(chunk.choices[0].delta.content or , end) asyncio.run(main())注意asyncio.run(main())必须放在函数外——这是异步流式调用里最常见的报错点。拆开一个 chunkChatCompletionChunk 与 delta 字段流里吐出的每一块都是ChatCompletionChunk对象顶层有id、model、created这些元信息核心在choices列表。每个 choice 里有三个关键字段——index、delta、finish_reason字段定义在src/openai/types/chat/chat_completion_chunk.py。delta才是增量本身内部字段role身份标记通常只在第一个chunk 出现如assistantcontent本块新增的文本可能为 Nonetool_calls模型发起工具调用时参数会分块出现在这里refusal被拒答时的说明文本。为什么必须对content判空因为很多 chunk 根本不带正文首块只交代 role收尾块的 delta 几乎为空、只带finish_reasonstop、length、tool_calls等。遇到这些块直接取content会拿到None拼接和打印都会报错或混入 None 字样。所以上面代码里才有一行if piece:——它不是可有可无的防御而是流式解析的标配。流式解析的三种落地姿势姿势一攒出完整答案界面要展示分块后端逻辑却往往需要完整文本存库或再加工。把打印换成追加就行stream 同上不再重复贴pieces [] for chunk in stream: piece chunk.choices[0].delta.content if piece: pieces.append(piece) answer .join(pieces) # 完整的模型回答姿势二打字机效果首段同步示例里的print(piece, end, flushTrue)已经在做这件事了。关键是flushTrue不加它输出会先进缓冲区攒一批逐字蹦出就变成一顿一顿观感大打折扣。终端演示、Web 控制台打字机靠的就是这一行。姿势三兜底与止损流式过程中网络抖动、额度用尽都可能抛错有时你也只想看前几块就提前离场。异常用APIError接住中断用stream.close()from openai import APIError try: for i, chunk in enumerate(stream): print(chunk.choices[0].delta.content or , end) if i 3: stream.close() # 拿到 3 块即掐断 break except APIError as e: print(f请求失败{e})close()会关掉底层连接避免服务端继续白推数据。✅ 上线前自检清单delta 判空与事件循环自检项现象原因处理空 deltacontent是 None首块只带 role、尾块只带 finish_reason用前判空或or 事件循环no running event loop报错Jupyter 里直接跑协程包一层asyncio.run中文乱码输出方块或生僻符号终端编码非 UTF-8终端设为 UTF-8连接不收尾提前 break 后仍占连接只 break 没关流记得stream.close()收尾一行streamTrue把等全文变成实时输出判空、攒文本、关流就是流式解析的全部骨架。下一步不妨给create传上 tools看看tool_calls在 delta 里是怎么一块块拼出来的。【免费下载链接】openai-pythonThe official Python library for the OpenAI API项目地址: https://gitcode.com/GitHub_Trending/op/openai-python创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

F3D:一条命令打开任意3D文件,从打开到出图只要1分钟

F3D:一条命令打开任意3D文件,从打开到出图只要1分钟

F3D:一条命令打开任意3D文件,从打开到出图只要1分钟 【免费下载链接】f3d Fast and minimalist 3D viewer. 项目地址: https://gitcode.com/GitHub_Trending/f3/f3d 客户发来一个 STEP 零件文件,让你下午前确认形状。打开常用 CAD 软件…

2026/8/24 15:26:28 阅读更多 →
SystemVerilog中浅拷贝与深拷贝的全面解析与UVM实践指南

SystemVerilog中浅拷贝与深拷贝的全面解析与UVM实践指南

1. 从一次“诡异”的仿真结果说起最近在带一个新人做验证环境搭建,他负责写一个简单的记分板(scoreboard)。环境跑起来后,数据比对总是间歇性出错,有时对,有时错,毫无规律。他排查了一整天&…

2026/8/23 10:59:26 阅读更多 →
信息论与决策树在Wordle策略优化中的应用:2023美赛C题解题框架

信息论与决策树在Wordle策略优化中的应用:2023美赛C题解题框架

1. 项目概述:从“思路翻译”到系统性解题框架的构建 看到“2023年美赛C题思路翻译数据参考文献”这个标题,很多初次接触美赛或者正在备赛的同学可能会有点懵。这不像是一个具体的软件项目或者产品,更像是一个信息聚合的索引。我最初看到类似的…

2026/8/23 10:58:26 阅读更多 →

最新新闻

本地化视频字幕生成与翻译:基于Whisper与DeepSeek的完整工作流实践

本地化视频字幕生成与翻译:基于Whisper与DeepSeek的完整工作流实践

这次我们来看一个本地字幕生成与翻译工具的实际应用案例。项目标题指向一个具体的视频处理任务:为一部名为《科学冒险队Tansar5 1979》的视频,利用 DeepSeek 模型生成英文字幕并翻译为中文。这背后涉及的核心技术栈,是一个能够处理视频、提取…

2026/8/24 16:03:09 阅读更多 →
基于DeepSeek大模型实现英文字幕高效翻译:从原理到实践

基于DeepSeek大模型实现英文字幕高效翻译:从原理到实践

1. 先搞清楚这个“DeepSeek英转中文字幕”到底是怎么一回事看到“科学冒险队Tansar5 1979【DeepSeek英转中文字幕】”这个标题,很多人的第一反应可能是去找一个叫“DeepSeek”的专门字幕翻译工具。但如果你真的去搜,大概率会找不到一个独立的、叫这个名字…

2026/8/24 16:03:09 阅读更多 →
基于SpringBoot的服装电商平台系统的设计与实现(源代码+文档+PPT+调试+讲解)

基于SpringBoot的服装电商平台系统的设计与实现(源代码+文档+PPT+调试+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/24 16:03:09 阅读更多 →
DeepSeek Flash 0731:从评测高分到工作流集成的实践指南

DeepSeek Flash 0731:从评测高分到工作流集成的实践指南

最近几个月,AI圈的热闹几乎被开源模型包圆了。从年初的“百模大战”到如今,大家讨论的焦点不再是“哪个模型又发布了”,而是“哪个开源模型在哪个榜单上又追平甚至超越了GPT-4”。这种叙事听起来很振奋,但作为一个长期在工程一线折…

2026/8/24 16:03:09 阅读更多 →
一键激活Windows与Office,10分钟完成全部流程

一键激活Windows与Office,10分钟完成全部流程

一键激活Windows与Office,10分钟完成全部流程 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 屏幕右下角的激活水印挂了两周,Word 里的保存和排版按钮全是灰色。你试过找…

2026/8/24 16:02:08 阅读更多 →
QuickBMS 游戏资源提取指南:任意存档包,一条命令搞定

QuickBMS 游戏资源提取指南:任意存档包,一条命令搞定

QuickBMS 游戏资源提取指南:任意存档包,一条命令搞定 【免费下载链接】QuickBMS QuickBMS by aluigi - Github Mirror 项目地址: https://gitcode.com/gh_mirrors/qui/QuickBMS 你下载的游戏资源包打不开?专用提取器只认某一款游戏&a…

2026/8/24 16:02:08 阅读更多 →

日新闻

前端内容安全与依赖审计实践

前端内容安全与依赖审计实践

前端内容安全与依赖审计实践 前端安全依赖分层防护。没有任何单一配置能替代输出编码、权限校验和依赖更新。 把不可信内容当作数据 默认使用框架的转义能力;确需渲染 HTML 时,先在服务端或可信的客户端库中进行白名单过滤。避免把用户输入直接赋给 inne…

2026/8/24 1:08:15 阅读更多 →
Windows登录密码存储机制全解析:从哈希算法到安全加固实战

Windows登录密码存储机制全解析:从哈希算法到安全加固实战

1. 项目概述:Windows登录密码的“黑匣子”每次你按下CtrlAltDel,输入密码,然后看到那个熟悉的桌面,这背后发生了一系列复杂而精密的操作。作为一名长期与Windows系统打交道的从业者,我经常被问到:“我的密码…

2026/8/24 1:08:15 阅读更多 →
AI面试系统安全挑战与解决方案

AI面试系统安全挑战与解决方案

1. 项目概述:AI面试系统的安全挑战去年参与某跨国企业AI面试系统部署时,遇到一个典型案例:候选人在视频面试中无意提到竞争对手产品名称,系统竟自动将该信息关联到企业知识库并生成竞品分析报告。这个看似"智能"的功能&…

2026/8/24 1:08:15 阅读更多 →

周新闻

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/24 0:06:02 阅读更多 →
SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/24 0:20:20 阅读更多 →
Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/24 0:14:11 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/23 18:47:06 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/23 12:10:44 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/24 11:20:22 阅读更多 →