← 返回 教程
本页目录(4)
开发者教程QSTAR 开发者关系·2026-10-16·5 分钟

用 QSTAR API 管理多轮对话上下文

手把手教你在 OpenAI 兼容接口上维护 messages 数组,控制上下文长度与成本,避免「聊着聊着就失忆」。

核心思路:messages 是状态

多轮对话没有魔法,本质是你每次请求都把历史 messages 数组整体发给模型。前端或后端负责维护这个数组,模型本身不记得上一轮。

最小化可跑示例

下面用 Node.js 演示:把每轮的用户输入与助手回复依次 push 进 messages,再带着完整数组发起下一次请求。

  • 用环境变量 QSTAR_API_KEY 注入密钥,绝不硬编码
  • base_url 指向 /v1,路径与 OpenAI 一致
  • 每次只 append,不修改历史,保证可复现

控制上下文成本

历史越长,token 越贵、延迟越高。常见做法是:保留系统提示与最近 N 轮,超出的早期对话做摘要压缩后保留一条 summary 消息。

  • 滑动窗口:只保留最近 8~12 轮
  • 摘要压缩:把更老的对话 summarise 成一条
  • 关键事实抽取:把订单号等关键信息抽成独立 memory

别忘了流式与错误重试

生产环境建议开启 stream 以尽快渲染首字,并对 429/5xx 做指数退避重试;上下文截断要与用户可见提示联动,避免「突然忘了前面说的」。

分享X微博LinkedIn