RAG
检索增强生成(Retrieval-Augmented Generation, RAG)允许语言模型根据检索到的相关信息,并将其填充进模型提示词中,从而能够对外部内容(如文档、知识库等)进行推理和问答。当系统表现未达预期(例如模型“胡言乱语”或遗漏了相关内容)时,这通常不是模型本身的问题——而是上下文填充存在偏差。
本页面涵盖了最常见的 RAG 问题及其解决方案。
针对不同场景的推荐配置
RAG 的性能很大程度上取决于您的模型配置。系统的默认值较为保守以确保能够在任何设备上工作,但针对您的特定部署进行微调可以获得极佳的产出质量。所有这些参数都可以在 Admin Panel(管理员面板) > Settings(设置) > Documents(文档) 中进行配置。
针对 context 受限(≤ 8K tokens)的本地模型
这通常适用于在消费级硬件上通过 Ollama 部署的模型(如 Llama 3.1 8B、Qwen 2.5 7B、Gemma 3 4B、Phi-3 Mini 等),这些模型的 context 窗口大小通常有限。
| 设置选项 | 推荐值 | 对应考量与原理 |
|---|---|---|
| Text Splitter | token | 确保切片大小与实际 token 数 量保持一致 |
| Markdown Header Splitting | 开启 (On) | 保留文档原有的段落结构 |
| Chunk Size | 1000 | 较小的切片可以确保召回结果能轻松装入 context 中 |
| Chunk Overlap | 100 | 标准的重叠度 |
| Top K | 3–5 | 较少的切片数,以防撑爆有限的 context 预算 |
| Full Context Mode | 关闭 (Off) | 无法承受直接将整篇文档发送给模型 |
Context 预算算账
当切片大小为 1000 个 token、Top K 设置为 5 时,RAG 会往模型里注入大约 5,000 个 token 的召回内容。再算上系统提示词以及历史对话——如果您的模型 context 窗口只有 8K 大小,那这只剩大约 2–3K 留给新的对话交互了。如果发现后续追问被截断,请将 Top K 往下调。