第14课:宏观认知 —— 为什么RAG + 技术选型方法论
本节目标:从全局视角理解 RAG 为什么是 LLM 应用的标配、搞懂 Agentic RAG 的本质、掌握 LLM/框架/向量库/Embedding 四维选型决策树。
上篇你动手搭建了一个完整的 Knowledge Agent。这一课从"怎么做"升维到"为什么这样做 + 还有哪些选择"。
1. 大模型的三个致命短板
| 问题 | 表现 | 危害 |
|---|---|---|
| 知识截止 | 训练数据有时效性 | 不知道最新信息 |
| 幻觉 | 编造不存在的内容 | 在专业领域致命 |
| 缺乏可溯源 | 答案无引用出处 | 用户无法验证 |
RAG 的本质:提前把文档存到向量库 → 用户问时搜出最相关的几段 → 只把这几段塞 prompt → LLM 基于它们回答。把"检索"交给向量库,把"生成"交给 LLM,各干各擅长的。
2. Agentic RAG 比普通 RAG 强在哪?
Code
普通 RAG:
问题 → 检索一次 → 生成
Agentic RAG:
问题 → Agent 思考 → 改写查询 → 多路检索
→ 评估证据 → 不够再检索 → 生成
(Agent 像人类一样会"思考、判断、决策")
| 维度 | 传统 RAG | Agentic RAG |
|---|---|---|
| 检索决策 | 固定流程,永远检索 | Agent 判断是否需要 |
| 检索次数 | 一次 | 多轮迭代 |
| 查询优化 | 用原问题检索 | Agent 改写、拆分 |
| 证据评估 | 不评估 | 判断证据是否充分 |
| 失败处理 | 硬答 | 反思 + 二次检索 |
3. 技术选型四维决策树
3.1 大模型(LLM)
Code
├─ 商用 API(DeepSeek/GPT/Claude/通义)
│ → 上手快、效果好、有费用
│ → 推荐:DeepSeek-V3(中文好+性价比极高)
│
└─ 自部署(Llama/Qwen/ChatGLM)
→ 可控、私有、需要 GPU
→ 推荐:Qwen2.5-7B(中文场景够用)
3.2 框架
Code
├─ Java:LangChain4j(本项目)
│ → Java 生态最成熟的 AI 框架
│
├─ Python:LangChain / LlamaIndex
│ → LangChain 全能,LlamaIndex RAG 最强
│
└─ 不用框架:直接调 API(小项目可行)
3.3 向量数据库
Code
├─ pgvector(PostgreSQL 扩展)→ 中小数据量、统一技术栈
├─ Milvus / Qdrant → 千万级以上向量
├─ Elasticsearch + KNN → 已有 ES 基础设施
└─ Faiss(内存方案) → 临时实验
| 规模 | 推荐 |
|---|---|
| < 100 万 | pgvector / Chroma |
| 100 万 - 1000 万 | Qdrant / Milvus |
| > 1000 万 | Milvus(分布式) |
3.4 Embedding 模型
Code
├─ BGE / M3E / Conan → 中文优势 ├─ 通义 text-embedding-v3 → 中文 + 国内可用
└─ OpenAI text-embedding-3 → 通用、英文好
中文场景首选 BGE-M3(多功能 + 长上下文 8K + 开源免费)。
4. 本项目的选型理由
| 组件 | 选择 | 理由 |
|---|---|---|
| 大模型 | DeepSeek | 中文好、API 兼容 OpenAI、性价比极高 |
| 框架 | LangChain4j | Java 生态最成熟,覆盖 RAG/Agent/Tool/Memory |
| 向量库 | PostgreSQL + pgvector | 业务数据和向量数据同库,简化运维 |
| 通信 | SSE 而非 WebSocket | 流式输出场景下 SSE 更轻量 |
5. 领域智能问答万能公式
code
领域智能问答 =
高质量切片
+ 多路混合检索
+ Rerank
+ 强约束 Prompt
+ Agent 决策
+ 流式输出
+ 引用溯源
每一环都不能偷懒,但每一环都有标准化方法。 接下来的课程,我们逐环深挖。
核心要点
- RAG = 开卷考试:先查资料再回答
- Agentic RAG = 会思考的 RAG:自己判断要不要检索、检索几次、够不够
- 选型原则:中文→BGE+DeepSeek,Java→LangChain4j,中小规模→pgvector
- 万能公式七环节——缺一环就掉链子
下一课:切片策略深度——RAG 的地基工程。