技术选型

前端 AI 聊天窗口的核心是流式响应——让用户看到逐字生成的效果。

实现要点

async function chat(messages) {
  const response = await fetch('https://api.openai.com/v1/chat/completions', {
    method: 'POST',
    headers: { 'Authorization': 'Bearer ' + apiKey },
    body: JSON.stringify({ model: 'gpt-4o-mini', messages, stream: true }),
  });
  for await (const chunk of parseStream(response.body)) {
    appendToChat(chunk);
  }
}

上下文管理

每次请求需要带上历史消息。消息越多 token 消耗越大,需要做截断或摘要。关于成本控制参考 LLM API 费用的那些坑