Skip to main content

OpenAI 流式对话示例

以下示例展示如何使用OpenAI兼容的 /v1/chat/completions 接口进行流式对话,实现实时打字效果。

快速开始

只需要替换 <API-KEY> 为你的实际API密钥即可运行。

流式响应格式

流式响应使用Server-Sent Events (SSE)格式,每个数据块的结构如下:

重要参数说明

  • stream: 设置为 true 启用流式输出
  • delta: 每个数据块包含的增量内容
  • finish_reason: 流结束时会包含结束原因(如 “stop”, “length”)
  • [DONE]: 流结束标记

流式输出的优势

  1. 实时反馈: 用户可以立即看到AI开始生成内容
  2. 更好的用户体验: 避免长时间等待,提供打字效果
  3. 早期中断: 可以在生成过程中提前停止
  4. 降低延迟感知: 分块接收减少用户等待感

处理流式数据的注意事项

  1. 解析SSE格式: 正确处理 data: 前缀和 [DONE] 标记
  2. 错误处理: 处理网络中断和解析错误
  3. 缓冲管理: 及时刷新输出缓冲区
  4. 连接管理: 确保正确关闭连接

实际应用场景

  • 聊天应用: 实现类似ChatGPT的打字效果
  • 内容生成: 长文章、代码生成的实时显示
  • 实时翻译: 边输入边翻译的场景
  • 代码助手: IDE中的实时代码补全