对接Agent时,流式接口消息存在批量返回问题

背景:今天对接后端 Agent 返回消息时,发现输出效果不如 ChatGPT、豆包或 deepseek 那样流畅。通过开发者工具查看发现,同一毫秒内会返回约 10 条消息,所以会造成消息一大块一大块的渲染,而不是像打字机那样丝滑,起初以为是算法或后端问题,经过排查才发现是 Nginx 代理层的默认缓冲设置导致的。

1. 为什么会出现这种情况?

Nginx 默认开了 proxy_buffering,会先把后端响应缓冲到内存里,攒够一部分数据后再一次性发给前端。

所以在 Nginx 配置里关掉:

bash 复制代码
proxy_buffering off;
chunked_transfer_encoding on;
proxy_cache off;

这样 Nginx 就会「边收到边转发」,前端就能逐条拿到流了。

解决方案如下:

(1)给nginx的proxy代理加这三行代码:

复制代码
proxy_buffering off; # 关闭响应缓冲 
chunked_transfer_encoding on; # 开启分块传输 
proxy_cache off; # 关闭缓存

若不想影响其他接口,只对某一个流式接口单独关闭代码缓冲,则单独加即可:

复制代码
 # 单独配置 /api/medical/AIChat/getReply
 location = /{{你的具体流式接口地址}} {
        proxy_pass {{你的域名}}/{{你的具体流式接口地址}}
        proxy_connect_timeout 300;
        proxy_send_timeout 300;
        proxy_read_timeout 300;
        proxy_buffering off;          # 关闭响应缓冲
        chunked_transfer_encoding on; # 开启分块传输
        proxy_cache off;              # 关闭缓存
    }

这样发到产线后就解决了

(2)本地开发环境如何解决?以我的vite.config.js为例:

bash 复制代码
proxy: {
  // 单独给 /api/AIChat/getReply 加特殊配置
  '/api/AIChat/getReply': {
    target: `${pythonDomain}/api/AIChat/getReply`,
    changeOrigin: true,
    ws: true,
    // 不做 rewrite,让它直通后端
    // 如果要 rewrite,也必须保持和后端路径一致
  },

  // 其它 /api 依然走原有规则
  '/api': {
    target: `${pythonDomain}/api`,
    changeOrigin: true,
    ws: true,
    rewrite: (path) => path.replace('/api', '')
  }
}

好了,本地开发环境与线上环境都解决了,快去试试吧!

相关推荐
NineData2 天前
NineData将亮相第27届GOPS全球运维大会,并带来技术演讲
运维·数据库·ninedata·智能·ai agent·数据管理工具·gops全球运维大会
新知图书2 天前
A2A架构详解
人工智能·架构·ai agent·智能体·大模型应用
bestcxx3 天前
0.2、AI Agent 开发中 ReAct 和 MAS 的概念
人工智能·python·dify·ai agent
新知图书10 天前
Encoder-Decoder架构的模型简介
人工智能·架构·ai agent·智能体·大模型应用开发·大模型应用
TGITCIC13 天前
能源AI天团:多智能体如何破解行业复杂任务
人工智能·能源·新能源·ai agent·大模型ai·ai能源·能源大模型
万事可爱^22 天前
如何在云服务器上使用LLaMA Factory框架微调模型
运维·服务器·llm·sft·llama·模型微调·ai agent
alex10024 天前
AP2协议与AI Agent经济:重塑金融生态与主权国家挑战
人工智能·金融·web3·去中心化·区块链·ai agent
mask哥1 个月前
详解mcp以及agen架构设计与实现
java·微服务·flink·大模型·ai agent·springai·mcp
AI指北2 个月前
每周AI看 | 微软开源VibeVoice-1.5B、OpenAI历史性交棒、网易云商出席AICon全球人工智能开发与应用大会
大数据·人工智能·ai·微软·钉钉·在线客服·ai agent