claude code 怎么开启流式传输?

4 月 7 日
 BestEicky
我在 vps 上使用了 CLIProxyApi 这个项目反代了 codex 和 claude 的订阅,但是我发现在这个 claude 里面无法流式输出,终端版的 claude code cli 是不支持吗? vps 上是 nginx 反代的 cliproxyapi ,然后套了 cf ,我用 opencode 是流式传输的,请教一下各位大佬,claude code 要怎么流式传输呢?现在是一下子输出所有结果
2842 次点击
所在节点    程序员
9 条回复
allenzhangSB
4 月 8 日
你都用了 claude code 了, 怎么流式传输还来这里问?
Jgege
4 月 8 日
檢查一下你的 Nginx 配置,是否開啟了 proxy_buffering off;?套了 CF 的話,緩存機制會截斷流式輸出。
Jgege
4 月 8 日
我之前在 Debian 環境下處理過類似的 CLI 流式混淆問題,有一套專門針對 CF 反代的參數優化。如果你急著上生產環境,可以深入聊聊。
BestEicky
4 月 8 日
@allenzhangSB 就是不懂才来问哇,虚心请教一下
BestEicky
4 月 8 日
@Jgege
proxy_buffering off;
proxy_request_buffering off;
proxy_next_upstream off;
我配置了这三项,但是依然不生效
Jgege
4 月 8 日
@BestEicky
如果你已經關閉了 Nginx 的 Buffering ,問題大概率出在 Cloudflare 的 Proxy Status 上。CF 默認會對響應進行壓縮和緩存,這會切斷 SSE (Server-Sent Events) 的流式輸出。

你可以嘗試在 Nginx 配置中強制加入這個 Header:
add_header X-Accel-Buffering no;

另外,檢查一下 CF 的 Page Rules ,確保該路徑的 Cache Level 設為 Bypass ,或者暫時關閉 CF 的小黃雲( Proxy )改為 DNS Only 實測一下。如果還不行,可能需要檢查你的後端 API 是否正確發送了 text/event-stream 。

如果你測過之後生效了,麻煩告知一聲。因為這種 Cloudflare 疊加 Nginx 的流式傳輸異常在 Debian 13 下有幾種不同的底層表現,我想確認這個方案的普適性。
BestEicky
4 月 8 日
@Jgege 感谢大佬耐心回复,但是我测试了,在 opencode 里面是很正常的流式传输,哪怕不配置那三项,都是正常的,但是我用 claude code 终端,就不行,每次回答都是最后一次性吐所有的结果
Jgege
4 月 8 日
@BestEicky 很有意思的對比。既然 opencode 正常,說明你的 Nginx 管道基本是通的。claude code 終端的行為差異,大概率是因為它對 HTTP/2 或 gRPC-web 的依賴程度不同。

你檢查一下兩者的 Content-Type 是否一致?有些 CLI 工具如果檢測不到 text/event-stream 會自動降級為全量緩衝。

另外,你是在 Debian 環境下跑的嗎?試試用 curl -N -v 直接請求你的 API 地址,看看原始數據是一點點跳出來,還是憋一大塊才出來。這能徹底幫你斷定是 網絡層 還是 應用層( claude code ) 的問題。
CodingIran
4 月 8 日
@BestEicky 他的意思是,你直接问 claude 就行了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/1204149

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX