Context (上下文): 喂给 AI 的高标号"燃油"
如果你已经理解了 Prompt
是发给 AI 的指令,那么 Context (上下文) 就是让这条指令从"一句空话"变成"一个精准制导任务"的关键所在。
简单来说,Context 是你在提出核心要求(Prompt)的同时,提供给 AI 的所有相关的背景信息、环境因素、数据和约束条件。
深入理解:一个核心比喻
想 象一下,AI 是一个极其聪明的神探夏洛克。
-
没有 Context 的 Prompt:你只递给他一张纸条,上面写着:"一个带泥的脚印。" 夏洛克只能给出宽泛的猜测,对你毫无帮助。
-
带有丰富 Context 的 Prompt:这次,你不仅递上纸条,还附上了一份案情卷宗 (Context),里面写着:昨晚珠宝店发生盗窃案、当时正在下雨、现场没有强行闯入痕迹……
有了这份 Context,夏洛克(AI)就能立刻将"带泥的脚印"这个线索与整个案件关联起来,进行深刻推理,给出极具洞见的分析。
一句话总结:Prompt 告诉 AI "做什么",而 Context 告诉 AI "在怎样的世界里、以怎样的身份、为谁、用什么材料来做这件事"。
Context 的"经济学":Token 与上下文窗口
Context 并非免费的午餐。它的大小和成本,由两个核心概念决定:
- Token: AI 世界的"货币"。它不是单词,而是词块。AI 处理的所有文本(包括你的输入和它的输出)都以 Token 为单位进行计算和计费。
- 上下文窗口 (Context Window): 每个
LLM
的"预算上限"或"短期记忆"大小,以 Token 数量衡量(如 4k, 128k, 200k)。它是在任何一次单独的 API 调用中,模型能同时处理的 Token 总量。
一旦输入和输出的总 Token 数超出了这个窗口,模型就会开始"忘记"最早的信息。因此,在提供详尽 Context 和控制成本之间取得平衡,是专业应用的关键。
"无限聊天"的秘密:滑动窗口 (Sliding Window)
你可能会问:既然上下文窗口有限,为什么我能和 ChatGPT 无限聊下去?
答案是:它在"假装"记得。聊天应用在后台使用了一种叫滑动窗口的策略:
- 保留开头: 保留对话最初的几句(通常是角色设定)。
- 保留结尾: 保留你们最新的、最近的几十上百句对话。
- 丢弃中间: 如果总长度超出预算,它会从对话的"腰部"——那些不新不旧的中间部分——开始丢弃。
所以,AI 看到的永远是一个经过精心"剪辑"的、长度符合其预算的对话片段。这保证了对话的表面连贯性,但如果你突然问一个很久以前聊过的细节,它很可能已经"失忆"了。