You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel Vapor中如何禁用输出缓冲实现OpenAI API流式响应?

在AWS Laravel Vapor中禁用输出缓冲实现OpenAI流式响应

要解决Vapor环境下OpenAI流式响应被缓冲的问题,需要从Lambda配置、PHP环境、Laravel中间件和API Gateway四层入手,具体操作如下:

  • 开启Lambda响应流式
    Lambda默认会缓冲所有输出直到函数执行完毕才返回,必须手动开启流式响应模式:

    1. 登录AWS控制台,找到对应项目的Lambda函数
    2. 在「配置」→「函数代码」→「运行时设置」中,启用响应流式(Response Streaming)
    3. 同时确保Laravel代码返回StreamedResponse,示例代码:
      return response()->stream(function () {
          $client = OpenAI::client(env('OPENAI_API_KEY'));
          $stream = $client->chat()->createStreamed([
              'model' => 'gpt-3.5-turbo',
              'messages' => [['role' => 'user', 'content' => '你的提问内容']],
          ]);
      
          foreach ($stream as $chunk) {
              echo $chunk->choices[0]->delta->content ?? '';
              ob_flush();
              flush();
          }
      }, 200, [
          'Content-Type' => 'text/event-stream',
          'Cache-Control' => 'no-cache',
          'Connection' => 'keep-alive',
      ]);
      
  • 调整PHP ini核心配置
    仅关闭output_buffering和implicit_flush不够,必须禁用zlib压缩(会强制缓冲输出)。在项目根目录的vapor.yml中添加以下配置:

    environments:
        production: # 对应你的环境名称
            php:
                ini:
                    output_buffering: 'off'
                    implicit_flush: 'On'
                    zlib.output_compression: 'Off'
    

    修改后重新部署项目生效。

  • 排除Laravel缓冲中间件
    Laravel的会话(StartSession)和Cookie加密中间件可能会缓冲响应,需要在流式响应的路由中排除这些中间件:

    Route::get('/stream-chat', [ChatController::class, 'stream'])
        ->withoutMiddleware([
            \Illuminate\Session\Middleware\StartSession::class,
            \Illuminate\Cookie\Middleware\EncryptCookies::class,
        ]);
    
  • 配置API Gateway不缓冲响应
    Vapor默认通过API Gateway转发请求,需要确保网关不缓冲输出:

    1. 进入AWS API Gateway控制台,找到对应API
    2. 在「集成请求」设置中,将「内容处理」设为Passthrough(直接传递),避免网关对响应进行编码或缓冲

内容的提问来源于stack exchange,提问作者Jafo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 21:55:11