59API

← Retour aux guides

React 前端如何流式展示 LLM:忙开发者 10 分钟上手

API · ZH · 2026-07-23

为什么一定要做流式输出

在 React 前端里接 LLM,如果一次性等完整回答再渲染,用户会感觉“卡住了”。流式输出的核心价值很简单:先把首个 token 显示出来,再持续追加内容。这样不仅能明显缩短“等待感”,还更适合聊天、代码解释、摘要生成这类长文本场景。

对忙开发者来说,流式的收益很直接:交互更像实时打字,页面可提前展示加载状态,用户也更容易中途打断或继续追问。无论你调用 Claude 的 Opus、Sonnet、Haiku、Fable,还是 GPT 系列,流式思路都基本一致。

先把接口接通:用 59API 省成本、省时间

如果你不想同时维护多家模型的鉴权和 SDK,59API 很适合做统一入口。它是 AI API relay,基于 https://api.59api.com 提供 OpenAI 兼容接入,同时可调用 Claude 和 GPT 模型,支持 Claude Code、Codex 和任何 OpenAI SDK。对预算敏感的团队来说,它的按量计费和较低价格很友好,而且用的是官方品质模型,不需要接受“降级版”输出。

接入方式很简单:把 OpenAI SDK 的 baseURL 指向 https://api.59api.com,然后把模型名换成你要用的 Claude 或 GPT 模型,保留 stream: true 即可。对于想先验证前端体验、再决定是否扩量的项目,这种低门槛接法特别省事。

React 里的最小可用实现

前端逻辑可以拆成 4 步:发送请求、读取流、增量更新 state、处理结束信号。最常见的写法是用 fetch 获取响应后,从 response.body 里拿 reader,再用 TextDecoder 把 chunk 解码成字符串。你需要把每一段增量文本追加到 React state 中,而不是等整个请求结束才 setState。

如果你用的是聊天场景,建议把“正在生成”的 assistant 消息先插入到列表里,然后持续更新最后一条内容。这样 React 只需要渲染一个不断增长的字符串,代码最简单,也最不容易出错。若需要更顺滑的滚动体验,可以在消息容器更新后自动滚到底部。

一个容易忽略但很重要的坑

生产环境里,不要把 59API 密钥直接写进浏览器代码。更稳妥的做法是:React 前端请求你自己的后端或 BFF,再由服务端去调用 59API。这样既能保护密钥,也方便做速率限制、日志和用户配额控制。如果你是做原型验证,才考虑临时直连,并且要尽快替换为服务端代理。

另一个常见问题是流解析。不同网关返回的 chunk 可能会被拆分成半行,所以你要做好缓冲,按换行分隔,再提取 data: 后面的内容。遇到空行、心跳包或结束标记时,不要把它们当成正文追加,否则 UI 会出现乱码。

快速建议:先用低成本模型把体验跑通

先用便宜但质量稳定的模型验证交互,再按业务分层切换更强模型,是最省钱的路线。59API 的优势就在这里:同一套前端和同一套 OpenAI 兼容代码,可以在 Claude 和 GPT 之间灵活切换,还能利用返利机制进一步摊薄成本。对于要做 AI 产品 MVP、内部工具或客服助手的团队,这种“少改代码、多试模型”的方式很划算。

如果你现在就想把 React 流式聊天跑起来,可以先去 59API 注册并拿到密钥,接上 baseURL 后做一个 20 行左右的流式 demo。先看到首 token,再优化解析、样式和中断控制,通常一小时内就能做出可演示版本。

Tarifs · Docs

Prêt à commencer ?

Connectez Claude et GPT en quelques minutes aux prix les plus bas, sans bridage. Inscrivez-vous pour votre clé API.

Inscription gratuite