OpenAI Responses stream ended before a terminal response event

2026年10月11日 09:51 10.03 秒 success

错误信息

OpenAI Responses stream ended before a terminal response event

AI 解决方案

原文:OpenAI Responses stream ended before a terminal response event
译文:OpenAI Responses 流在收到终端响应事件之前结束

🎯 原因分析


该错误表明在使用 OpenAI Responses API 进行流式请求时,连接在收到表示正常结束的终端事件(如 response.completed)之前就中断了。常见原因包括:网络连接不稳定、请求超时、流被意外关闭或服务器端异常终止连接。

💡 解决方案


确保在流式请求中正确处理所有可能的事件类型,并在出现异常时进行重试或错误处理:

import OpenAI from 'openai';

const client = new OpenAI();

try {
  const stream = await client.responses.stream({
    model: 'gpt-4o',
    input: 'Hello, how are you?'
  });

  if (stream) {
    for await (const event of stream) {
      if (event.type === 'response.completed') {
        console.log('Response finished successfully');
        // 处理最终响应
      } else {
        // 处理其他事件类型
        console.log(event.type, event);
      }
    }
  } else {
    // 处理流未正常返回的情况
    console.error('Stream ended unexpectedly');
  }
} catch (error) {
  console.error('Request failed:', error);
  // 可在此添加重试逻辑
}

🛡️ 预防措施


  • 网络重试机制:对可能因网络波动失败的请求,实现指数退避重试策略,增强请求的鲁棒性。

  • 超时与心跳:为请求设置合理的超时时间,对于长时间流,定期检查连接状态,确保连接未过早断开。

  • 日志监控:记录流式请求的关键事件和错误,便于后续排查和分析问题根源。