← 返回文章列表

什么是 AI 模型的上下文窗口

上下文窗口是语言模型在单次请求中「看到」的文本量:你的提示词、对话历史、上传的文档以及模型的回复。一次 API 调用能否容纳整个代码库、长合同或仅一段短对话,取决于窗口大小。下文说明什么是上下文窗口、如何用 token 衡量,以及为何它是选模型时的关键参数之一。

通俗定义

上下文窗口(context window)是模型在一次请求中能处理的最大 token 数量。token 既不是词也不是字符:它是分词后的文本片段。在俄语和英语中,一个 token 大约对应 3-4 个字符或词的一部分;「programming」可能占 2-3 个 token。

模型不会自行「记住」过去的会话。它在回答时所知的一切,都是你在当前请求中、在窗口限制内传入的内容。若对话或文档超过上限,较早部分会被截断,或需用单独技术压缩(RAG、摘要、分块)。

实际上下文如何构成

典型 API 请求中的上下文包括:

  • System prompt - 给模型的指令(角色、回复格式、约束)。
  • 消息历史 - 聊天中先前的 user 与 assistant 轮次。
  • 附件 - PDF 文本、仓库代码、知识库片段。
  • 模型输出 - 许多模型中,回复也计入单次调用的总上限。

逻辑很简单:input + output ≤ 上下文窗口大小(部分模型分别限制 input 与 output,但本质相同 - 每次调用有上限)。

128K 窗口示例:

组成部分 大约体量
System prompt 500-2,000 token
对话历史(20 条消息) 5,000-15,000
上传文档 80,000
模型回复 最多 8,000-16,000

若总和超限,API 会报错,或平台自动截断历史开头 - 取决于客户端。

输入上下文与输出上下文

开发者常混淆两个概念:

  • Input context - 模型接受的 token 数(提示词 + 历史 + 文件)。
  • Max output tokens - 单次调用回复长度的上限(独立 API 参数,如 max_tokens)。

1M 窗口的模型 input 可接近百万 token,但单次回复仍可能限制在例如 8K-64K token。生成长报告有时需要多次顺序请求或流式续写。

部分定价档对 long-context 请求(超过阈值,如 200K input)收费更高 - 反映更大的推理负载。

为何需要大上下文窗口

当单次请求需承载大量相关信息时,大上下文很有用:

  • 文档分析 - 合同、报告、数十页研究,无需事先压缩。
  • 代码工作 - 多个项目文件、堆栈跟踪与修改历史放在同一提示中。
  • 长对话 - 支持与咨询场景需要完整线程,而非仅最近 10 条消息。
  • Agentic 场景 - 智能体在单会话中累积观察、工具调用与中间结果。

小窗口(4K-32K)足以应对短任务:分类、表单字段抽取、段落翻译、简单聊天机器人。涉及文档与代码的企业场景通常瞄准 128K 及以上。

2026 年的典型规模

到 2026 年中,市场分为几档:

档位 窗口大小 示例模型 典型任务
紧凑 8K-32K 轻量本地模型、旧 API 聊天、分类
标准 128K-200K GPT-5.5、Claude Sonnet 5、Gemini 3.1 Pro 代码、文档、智能体
扩展 1M-2M GPT-5.6、Claude Fable 5、Gemini 3.5 Flash 大型仓库、语料

上下文增长快于「有效」长度:模型技术上可接受百万 token,但在最长尾部质量可能下降(「lost in the middle」效应 - 模型对长上下文中间部分的信息利用较差)。大窗口不能替代良好架构,而是扩展能力。

限制与变通

即便 2M 窗口,也不应把所有内容塞进一个提示:

  1. 成本 - input 按 token 计费;每次请求百万 token 会迅速抬高生产费用。
  2. 延迟 - 长上下文在 GPU 上处理更久。
  3. 质量 - 相关事实应明确提供,而非「埋」在 500 页中间。

窗口不足或需省钱时的实用模式:

  • RAG(检索增强生成)- 在向量库中检索相关片段,仅注入提示。
  • 摘要 - 用单独模型调用压缩旧消息或文档章节。
  • 分块 - 将文本切块并聚合结果。
  • 滑动窗口 - 历史中仅保留最近 N 条消息加简短过往摘要。

生产中常组合:知识库事实用 RAG + 适度对话历史 + 128K-1M 模型处理「重」请求。

如何按任务选择窗口大小

任务 建议下限 说明
FAQ 机器人、意图分类 8K-16K 历史短,文档走 RAG
单仓库 Copilot 128K-1M 取决于代码库大小
法律 / 合规审查 200K+ 长 PDF、交叉引用
多模态文档 1M+ 文本 + 图像消耗更多 token

选模型前先估算 真实 input 体量:统计典型请求的 token(tiktoken、API 分词器或提供商的 count_tokens),并为回复与历史增长预留 20-30% 余量。

总结

上下文窗口是语言模型在单次请求中的「工作记忆」。以 token 计量,包含提示词、历史、附件,通常还包括回复空间。大窗口(128K-2M)可在不频繁截断的情况下分析长文档与代码库,但不能替代 RAG、摘要与成本控制。选模型时不仅看规格数字,还要看长上下文质量、long-context 定价以及典型请求的真实大小。

常见问题

token 与词有何不同?

Token 是模型分词后的文本单位。一个词可能是一个或多个 token;标点与空格也计入。俄语与英语平均 1000 token ≈ 750-900 词3000-4000 字符,具体因语言与模型而异。估算请用具体提供商的分词器,而非 Word 词数。

文本超过上下文窗口会怎样?

取决于平台:API 可能返回「context length exceeded」、截断历史 开头(最早消息先丢)或提供压缩。模型不会「读到」窗口之外 - 超限信息对它不存在。对策:RAG、摘要、分块或更大窗口的模型。

上下文越大回答越好吗?

不一定。大窗口提供传递更多数据的 能力,不保证同等利用好全部内容。极长输入时,中间事实的准确度常下降,成本与延迟上升。更好是传递相关上下文(检索或结构化提示),而非「以防万一」塞入整个语料。

如何估算文档占多少 token?

使用官方工具:OpenAI 兼容模型用 tiktokenAnthropic tokenizer,Gemini 用 Google AI Studio,或提供商 SDK 的 count_tokens。粗算:1 页文本(约 500 词)约 650-800 token;代码与表格因特殊符号可能每字符产生更多 token。

普通聊天机器人需要 1M token 模型吗?

典型短回复与 FAQ 的聊天机器人 - 不需要,32K-128K 加知识库 RAG 即可。1M+ 适用于大型 PDF 分析、整个仓库、长 agentic 会话,或无法在不损连贯性的前提下预先切分数据。先在生产中测量真实请求大小 - 往往 128K 加合适架构已足够。

联系方式