首页/AI/RAG 与向量库速查/上下文组装与 Token 预算

上下文组装与 Token 预算

把重排后的片段按 token 预算拼进提示词:总预算 = 上下文窗口 − 提示词模板 − 输出预留;片段超长要截断或压缩,同时保留引用信息。

RAG 与向量库速查AI更新于 2026-10-12

预算项

预算项示例(128K 窗口模型)
模型上下文窗口128K tokens
系统与指令提示词约 500 tokens
对话历史约 1000 tokens
检索片段如 3000-6000 tokens
输出预留如 1000-2000 tokens

按预算组装

按预算组装
budget = 6000
total = 0
parts = []
for hit in hits:                        # 已按重排分数排序
    t = count_tokens(hit.text)          # 用实际分词器计数
    if total + t > budget:
        break
    parts.append((hit.text, hit.meta))
    total += t
context = "\n\n".join(f"[{i+1}] {t}" for i, (t, m) in enumerate(parts))
不同模型 token 计数不同(tiktoken / 本地分词器);预算要按实际使用的模型计算,不要按字数粗略估算。

易错点

  • 片段只按分数拼接不考虑顺序,高相关内容被埋在中间影响利用率
  • 不做去重直接拼接,同一内容多份挤占预算

数据来源与参考

  • OpenAI 官方文档(Token 与上下文窗口)
  • tiktoken 项目 README(github.com/openai/tiktoken)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌