模型不记得。你才记得。
我以前一直以为大语言模型 (LLMs) 是有记忆的。
我以为每个聊天会话都会存储自己的上下文。我错了。
LLMs 是无状态的。模型不会记住从一个请求到下一个请求之间的任何内容。
当你看到聊天历史时,你看到的其实是一个消息数组。为了进行对话,你必须在每次发送新提示词 (prompt) 时,将整个历史记录重新发送给模型。
如果你使用 SDK,这个过程会被隐藏起来。SDK 会为你处理这些复杂性。
如果你使用原始的 fetch,你会看到一切。你需要自己管理请求头 (headers)、请求体 (body) 和消息数组。
上下文的工作原理如下:
• 你发送一条消息。 • 模型做出响应。 • 你将这两条消息都保存在一个数组中。 • 在问下一个问题时,你将整个数组重新发送回去。
模型只知道你在当前请求中发送的内容。其他一切都会消失。
理解这个数组是 AI 开发的基础。它是 RAG、滑动窗口 (sliding windows) 和语义搜索 (semantic search) 等高级方法的起点。
如果你想构建可靠的 AI 工具,请停止依赖抽象层。去观察原始请求。亲自掌控历史记录。
全文:https://dev.to/marcochavezco/the-model-doesnt-remember-you-do-38jk