跳到主要内容

Context (上下文): 喂给 AI 的高标号"燃油"

如果你已经理解了 Prompt 是发给 AI 的指令,那么 Context (上下文) 就是让这条指令从"一句空话"变成"一个精准制导任务"的关键所在。

简单来说,Context 是你在提出核心要求(Prompt)的同时,提供给 AI 的所有相关的背景信息、环境因素、数据和约束条件。

深入理解:一个核心比喻

想象一下,AI 是一个极其聪明的神探夏洛克。

  • 没有 Context 的 Prompt:你只递给他一张纸条,上面写着:"一个带泥的脚印。" 夏洛克只能给出宽泛的猜测,对你毫无帮助。

  • 带有丰富 Context 的 Prompt:这次,你不仅递上纸条,还附上了一份案情卷宗 (Context),里面写着:昨晚珠宝店发生盗窃案、当时正在下雨、现场没有强行闯入痕迹……

有了这份 Context,夏洛克(AI)就能立刻将"带泥的脚印"这个线索与整个案件关联起来,进行深刻推理,给出极具洞见的分析。

一句话总结:Prompt 告诉 AI "做什么",而 Context 告诉 AI "在怎样的世界里、以怎样的身份、为谁、用什么材料来做这件事"。

Context 的"经济学":Token 与上下文窗口

Context 并非免费的午餐。它的大小和成本,由两个核心概念决定:

  1. Token: AI 世界的"货币"。它不是单词,而是词块。AI 处理的所有文本(包括你的输入和它的输出)都以 Token 为单位进行计算和计费。
  2. 上下文窗口 (Context Window): 每个 LLM 的"预算上限"或"短期记忆"大小,以 Token 数量衡量(如 4k, 128k, 200k)。它是在任何一次单独的 API 调用中,模型能同时处理的 Token 总量。

一旦输入和输出的总 Token 数超出了这个窗口,模型就会开始"忘记"最早的信息。因此,在提供详尽 Context 和控制成本之间取得平衡,是专业应用的关键。

"无限聊天"的秘密:滑动窗口 (Sliding Window)

你可能会问:既然上下文窗口有限,为什么我能和 ChatGPT 无限聊下去?

答案是:它在"假装"记得。聊天应用在后台使用了一种叫滑动窗口的策略:

  1. 保留开头: 保留对话最初的几句(通常是角色设定)。
  2. 保留结尾: 保留你们最新的、最近的几十上百句对话。
  3. 丢弃中间: 如果总长度超出预算,它会从对话的"腰部"——那些不新不旧的中间部分——开始丢弃。

所以,AI 看到的永远是一个经过精心"剪辑"的、长度符合其预算的对话片段。这保证了对话的表面连贯性,但如果你突然问一个很久以前聊过的细节,它很可能已经"失忆"了。

Context 的高级玩法与未来形态

1. In-Context Learning (情境学习)

这是利用 Context 最巧妙的技巧之一,相当于给 AI 一张本次任务专用的"小抄"。通过在 Prompt 中提供一到两个完整的示例(Few-Shot Learning)作为 Context,你可以"临时教会"AI 按照你想要的特定模式去工作,极大提升特定任务的准确性。

Few-Shot 示例:

把这句话的情绪分类为"积极"或"消极"。
(示例)输入:"这个地方的服务很差。" -> 输出:"消极"
现在,请分类这句话:
输入:"这部电影真是太棒了!" -> 输出:

2. RAG (检索增强生成)

这是目前最前沿的 Context 应用方式,是 AI 的**"开卷考试"模式** 。它解决了 LLM 知识陈旧或无法访问私有数据的问题。

工作流程如上图:当用户提问时,系统先去外部知识库中**检索(Retrieval)最相关的信息,然后将这些信息增强(Augmented)到原始 Prompt 中,最后才让 LLM 根据这些新鲜的 Context 来生成(Generation)**答案。

Context 的"艺术"与"阴暗面"

组织是一门艺术

一个结构清晰的 Context(如使用 Markdown 标题、分隔符)能极大地帮助模型的注意力机制快速找到重点,就像提供一个井井有条的文件柜,而不是一个杂乱的办公桌。

提示词注入 (Prompt Injection)

这是 Context 带来的最大安全风险。由于 LLM 无法分辨哪些是开发者的原始指令,哪些是用户提供的不可信数据,恶意用户可以在他们的输入中嵌入"特洛伊木马"指令,劫持 AI 的行为,导致泄露敏感数据或生成有害内容。


继续前行:拓展视野

常见误区与最佳实践

  • 误区: 认为 Context 越多越好。过多的、不相关的 Context 不仅会增加成本,还可能分散模型的注意力,产生"噪音"。
  • 最佳实践: 提供**"必要且最小"**的 Context。通过 RAG、清晰的结构和 Few-Shot 示例,用最经济的方式,提供最精准的上下文信息。

推荐资源

  1. "What is RAG?" by LangChain: LangChain 官方文档,深入了解 RAG 的工作原理和实现方式。
  2. "Prompt injection: What's the worst that can happen?" by Simon Willison: 博客文章,对提示词注入攻击进行了深刻的分析和案例展示。

相关词条