跳转到内容

13 做一个 Mini ChatGPT 产品

  • 理解聊天产品不是一个输入框加 API。
  • 知道流式输出、取消、重试和错误状态怎么影响体验。
  • 把 RAG、Agent 和前端 UI 串起来。

一个可用的 AI 产品通常包含:

  • 消息状态管理。
  • 流式输出。
  • 请求取消和重试。
  • 工具调用过程展示。
  • 成本、延迟和错误提示。
  • RAG/Agent 的可观测性。
User Message
Retrieve optional context
Agent decides tool calls
LLM streams answer
UI appends chunks
persist trace and result

原始计划中的 nanoGPT + FastAPI + Gradio 是完整链路雏形:训练模型、推理服务、Web 界面、Agent、RAG。对前端研发来说,可以先用 JS 模拟服务和流式输出,等理解链路后再接真实模型。

源码:labs/13-front-end-product/index.mjs

这个实验用 async generator 模拟模型流式输出。

运行:

Terminal window
npm run lab:13

预期你会看到内容分块输出,浏览器里可以映射到 ReadableStream、SSE 或 fetch streaming。

  • 不显示中间状态,用户会以为系统卡住。
  • 不能取消长请求,会浪费成本并造成状态错乱。
  • 只看最终答案,不记录检索和工具 trace,很难调试。