首页/AI/AI 应用速查/上下文窗口(Context Window)

上下文窗口(Context Window)

模型单次请求可容纳的 token 总量(输入+输出口径因厂商而异)。窗口大不代表记得牢:超长输入的中间信息容易被忽略,且全部按 token 计费。

AI 应用速查AI更新于 2026-10-13

上下文窗口是什么

上下文窗口是模型单次请求能容纳的 token 总量,通常按输入与输出合计计算,具体口径各厂商略有差异,以官方文档为准。窗口大小决定了一次能喂进多少资料,但它不是记忆力承诺:超长输入中间部分的信息容易被忽略,即所谓中间迷失现象。窗口内的每个 token 都要计费,所以窗口既是能力边界,也是成本杠杆。

基本信息

含义单次请求可处理的 token 上限
计量单位token,不是字符或字数
常见口径多数厂商按输入加输出合计
当前水平主流 128K 与 200K 量级,部分模型到百万级
超出后果请求被拒并返回上下文超限类错误
成本关系输入与输出都按 token 计费,窗口用得越满越贵

不同内容的大致 token 量

内容粗略量级说明
一段中文段落百 token 级中文通常每字接近一个 token,英文约每四字符一个 token
一页 A4 文档数百到上千 token取决于排版与表格占比
一本长篇手册十万 token 级整本灌入会迅速吃满普通窗口
代码文件千到万 token 级缩进与符号会显著增加 token 数
一张高清截图数百到上千 token按分辨率折算,具体折算规则见厂商文档

窗口管理的常见做法

  • 裁剪历史:多轮对话只保留最近若干轮,丢弃与当前问题无关的旧内容
  • 摘要压缩:把早前对话汇总成一段摘要,替代原始消息序列
  • 检索替代灌入:长知识库走向量检索取相关片段,而不是整库塞入
  • 关键内容前置或后置:指令与核心结论放在头尾,减少被忽略的概率
  • 分段处理再汇总:超长文档先分块抽取要点,再基于要点作答

用 tiktoken 实测 token 数

用 tiktoken 实测 token 数
import tiktoken
enc = tiktoken.get_encoding("o200k_base")   # 选择与目标模型匹配的编码器
text = "上下文窗口的计量示例:一张表 3 行,共 5 列。"
print(len(enc.encode(text)))                # 得到真实 token 数,而不是字数
# 中文与英文混排时按字符估算误差很大,计费与截断判断都要用实测值
# 其他厂商的模型需换用其官方分词工具,编码表并不通用
有效上下文小于标称窗口:资料很长时,关键信息放在输入的开头或结尾命中率更高,中间位置最容易丢失。
不要在产品说明里承诺窗口大小等于可记住的信息量:这会把技术参数变成无法兑现的用户预期。

易错点

  • 用字符数估算窗口容量:中英文混排误差很大,容易在计费与截断上判断失误
  • 多轮对话全量回灌历史:输入 token 逐轮累积,账单与延迟一起涨
  • 把整份文档灌进单次请求:成本高、召回反而更差,且容易触及窗口上限
  • 把窗口大小写成产品的记忆能力承诺:用户按此预期使用,投诉随之而来

数据来源与参考

  • OpenAI/Anthropic 上下文文档;Liu et al. Lost in the Middle arXiv 2307.03172

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌