10
2024
12

php对接AI文生文流式输出问题

项目背景

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();


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。