开发者教程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 做指数退避重试;上下文截断要与用户可见提示联动,避免「突然忘了前面说的」。
免费领取 QSTAR API 额度,跑通你的多轮对话