Appearance
长文档与 RAG 场景选型:整篇喂入还是检索片段
结论先行:百万级上下文让「整篇喂入」重新变得可行,但它不等于免费——输入价 × 全文长度就是每问一次的成本。判断标准是提问次数**:一份文档问 2~3 次,整篇喂入更省事;问 100 次,就该把检索层补上。**
长上下文档位对照(每百万 token,采集 2026-10-08)
| 模型 | 输入价 | 上下文 | 输入模态 | 适合的长文档形态 |
|---|---|---|---|---|
| GLM-5.3 Flash | $0.165 | 105 万 | 文本、图像、视频 | 图文混排报告、批量文档 |
| GLM-5.3 | $0.0539 | 105 万 | 文本 | 纯文本长文、合同条款 |
| Gemini 3.1 Pro | $2.2 | 105 万 | 音频、文件、图像、文本、视频 | 音视频 + 文档混合 |
| DeepSeek V4 Pro | $1.0508 | 105 万 | 文本 | 需要更强推理的长材料 |
两种方案的成本模型
整篇喂入:每次提问成本 ≈ 输入价 × 文档长度。一份 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。
相关阅读:glm-5-3-vs-glm-5-3-flash | long-form-writing | gemini-3-1-pro