对接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', '')
  }
}

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

相关推荐
Super Scraper5 天前
如何批量抓取 TikTok 数据而不被封锁?完整指南
爬虫·ai·自动化·抖音·tiktok·ai agent
DogDaoDao5 天前
【GitHub】CL4R1T4S:AI 系统提示词的透明革命
人工智能·python·ai·大模型·github·ai agent·cl4r1t4s
Mininglamp_27185 天前
Vibe Coding 之后是 Vibe Operating?
后端·开源·多智能体·ai agent·mano-p
带娃的IT创业者5 天前
GitHub 热门: coleam00/Archon —— 当 AI Agent 学会自我进化
人工智能·github·开源项目·ai agent·智能体·自我进化
DogDaoDao6 天前
【GitHub】 Headroom 深度解析:AI Agent 上下文压缩层的完整技术拆解
人工智能·深度学习·程序员·github·ai agent·智能体·agent skill
暗黑小白7 天前
第二篇:不碰模型,意图识别快 9 倍 —— P0→P1→P2 流水线设计
人工智能·架构·ai agent
跟风舞烟学编程7 天前
Hermes Agent 从入门到企业实战-01:Hermes-Agent核心架构
人工智能·ai agent·hermes agent·自进化 agent
暗黑小白7 天前
第六篇:本地模型选型 —— 4 个模型 × 2 种设备 × 2 项任务的全量对比
架构·ai agent
暗黑小白7 天前
第五篇:Reranker 与 BM25 —— 在精排提升与降级可靠性之间划一条线
架构·ai agent
暗黑小白7 天前
第十篇:纠纷协调与可观测性 —— 多Agent协作的全链路追踪
架构·ai agent