项目背景
vue3调用本地php服务端,php服务端对接ChatGPT,百度千帆大模型,阿里千问Qwen等接口,实现文生文功能。
遇到问题
本地开发环境(php+apache)可以流式输出,上传到线上环境(php+nginx)没有流式效果!!
解决方案
1、php.ini配置里;
output_buffering = off
2、nginx站点配置;
location ~ [^/]\.php(/|$) { fastcgi_pass unix:/dev/shm/php-cgi.sock; fastcgi_index index.php; include fastcgi.conf; proxy_buffering off; #重点 fastcgi_keep_conn on; #重点 }
亲测gzip可以不用关闭。
3、Nginx情况下php代码开头必须加这一行
header('X-Accel-Buffering: no');
4、php相关测试代码
header('X-Accel-Buffering: no'); $str = '我是AI人工智能语言模型。我可以回答问题、提供信息、进行对话等。有什么可以帮助你的吗?'; $n = mb_strlen($str); // ob_end_clean(); for($i=0; $i<$n; $i++) { echo mb_substr($str, $i, 1); if(ob_get_level()>0) ob_flush();flush(); // 0.1毫秒 usleep(100000); } // ob_end_flush();