Skip to content

长文档与 RAG 场景选型:整篇喂入还是检索片段 ​

结论先行:百万级上下文让「整篇喂入」重新变得可行,但它不等于免费——输入价 × 全文长度就是每问一次的成本。判断标准是提问次数**:一份文档问 2~3 次,整篇喂入更省事;问 100 次,就该把检索层补上。**

长上下文档位对照(每百万 token,采集 2026-10-08) ​

模型输入价上下文输入模态适合的长文档形态
GLM-5.3 Flash$0.165105 万文本、图像、视频图文混排报告、批量文档
GLM-5.3$0.0539105 万文本纯文本长文、合同条款
Gemini 3.1 Pro$2.2105 万音频、文件、图像、文本、视频音视频 + 文档混合
DeepSeek V4 Pro$1.0508105 万文本需要更强推理的长材料

两种方案的成本模型 ​

整篇喂入:每次提问成本 ≈ 输入价 × 文档长度。一份 100 万 token 的技术手册,用 GLM-5.3 Flash 问一次约 $0.165,用 Gemini 3.1 Pro 约 $2.2。

检索片段:每次提问只喂命中的若干片段(通常几千 token),成本降到原来的百分之几,但需要维护切分、向量库与召回质量。

判定表 ​

单份文档的提问次数建议方案
1~5 次整篇喂入,免维护
5~30 次整篇喂入 + 结果缓存(相同问题不重复调用)
30 次以上先建检索层,再对命中片段调用模型
文档量 > 数百份必须建检索层,否则成本不可控

工程上的两个提醒 ​

① 引用出处要求写进提示词。 让模型输出「结论 + 原文位置」,人工核查成本会大幅下降。

② 缓存相同问题。 长文档问答里重复问题很多,加一层缓存能直接省下重复的输入费用。

python
from openai import OpenAI
client = OpenAI(api_key="你的 Ulnvault Key", base_url="https://ai.ulnit.com/v1")

def ask_doc(doc_text, question, model="z-ai/glm-5.3-flash"):
    return client.chat.completions.create(
        model=model,
        messages=[
            {"role": "system", "content": "只依据给定文档回答;每条结论后附原文片段位置。"},
            {"role": "user", "content": f"文档:\n{doc_text}\n\n问题:{question}"},
        ],
    ).choices[0].message.content

常见问题 ​

百万上下文真的能用满吗? ​

实际可用长度会留出输出空间,建议按标称的 80% 估算;超长文档仍建议按章节切分以便定位问题。

国产长上下文模型可靠吗? ​

GLM-5.3 系列上下文档位达 105 万,适合中文长文档与图文混排;建议用自己的文档做一次对照实验。

检索层有必要自建吗? ​

如果提问频率低,先不建;当同一份文档被反复询问时,检索层的投入很快就能回收。

价格采集时间? ​

2026-10-08;站内价 = OpenRouter 挂牌 ×1.1。


👉 立即注册,0 元尝鲜套餐试用

相关阅读:glm-5-3-vs-glm-5-3-flash | long-form-writing | gemini-3-1-pro

Ulnvault — 40 个顶级 AI 模型,一个账号全打通