用DeepSeek API追问“第二个呢”却得不到连贯回答,先检查新请求是否包含此前的问答。聊天补全接口是无状态的,服务端不会自动把上一条请求的上下文补进来;相同密钥连续调用也不等于同一段会话。
每轮补齐助手回答和新问题
第一轮把用户问题放进messages,收到回答后,将助手消息追加到列表,再追加新的用户问题。第二轮发送完整列表,而非仅发送追问。普通文本对话应保留user与assistant角色和原先顺序,不要全部合并为用户发言。
例如先问最高的山,再问第二高的山,历史中需要同时存在首问和首答。更多接入细节可在DeepSeek教程目录查阅。
保存记录时把会话隔离开
建议按用户与会话标识存储历史,不能让所有访问者共享同一个全局列表。读取历史前校验访问权限,日志也不要默认记录完整的私密对话。浏览器刷新后的恢复,应由应用自己的存储逻辑负责。
同一会话同时提交两条追问时,建议排队或使用版本检查,避免两个请求都基于旧历史生成,随后互相覆盖。失败请求的半成品不要直接写成完整助手回答。
逐轮累积会让请求内容增长。裁剪时建议保留任务约束、关键事实和最近问答,必要时保存可核对的摘要;摘要遗漏的内容不能假定模型仍记得。涉及工具调用的消息还需保留匹配关系。迁移到其他AI接口后,建议用依赖早期事实的追问测试裁剪效果,检查关键约束是否仍在,而非只测试最近一句能否接上。
原创文章,作者:eastbtc,如若转载,请注明出处:https://www.eastbtc.com/ai/deepseek/29821.html