最近在做大模型的中转,但流式输出一直无法起作用。测试发现是服务器宝塔的问题,我本地也是apache,但一点问题没有。
测试代码:
- <?php
- while (ob_get_level() > 0) {
- ob_end_clean();
- }
- ini_set('output_buffering', 'off');
- ini_set('zlib.output_compression', 'off');
- header('Content-Type: text/plain');
- header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
- header('Pragma: no-cache');
- header('X-Accel-Buffering: no');
- echo "Testing streaming...\n";
- for ($i = 1; $i <= 5; $i++) {
- echo "Message $i\n";
- flush();
- sleep(1);
- }
- echo "Streaming complete.\n";
复制代码 执行后,应该是1秒钟出现一行字,然后最后输出 Streaming complete.
但放到宝塔里,就是不行,宝塔里等5秒钟一起输出来,而不是逐条输出来。
我已经关了 php.ini 的,php-fpm设置也改了。
output_buffering,apache里也注释了 deflate_module,http也改为了1.1
<IfModule http2_module>Protocols http/1.1</IfModule>
output_buffering = Off
zlib.output_compression = Off
包括 httpd-default.conf 也注释了最后三行
请问如何处理,是哪里的问题呢?
已经有很多人有这个问题,一直没有答复
https://www.bt.cn/bbs/thread-9698-1-1.html
https://www.bt.cn/bbs/thread-61087-1-1.html
https://www.bt.cn/bbs/thread-141361-1-1.html
|
|