返回 RAG 工程实战目录

需求分析与技术选型

从数据、业务、安全和资源约束做选型

生命周期 · 阶段二 需求分析 | 上游:立项决策(01)| 下游:系统设计(03)

一、需求分析清单

搭建前必须明确以下问题,否则选型会反复推翻:

1. 数据维度

问题影响
文档总量多大?(1GB / 100GB / 1TB)决定向量库容量与索引类型
文档类型?(PDF/Word/Excel/PPT/图片/扫描件占比)决定解析器与是否需要 OCR
扫描件/图片型 PDF 占比多高?OCR 是性能与准确率的瓶颈点
更新频率?(一次性导入 / 每日增量)决定是否需要增量入库与版本管理
单文档平均页数、是否有复杂表格?影响切片策略

2. 业务维度

问题影响
核心场景?(问答/摘要/检索/Agent 工具)决定链路设计与 Prompt
并发量与响应时长要求?(如 P95 ≤ 5s)决定模型部署与缓存策略
答案必须 100% 有据可依吗?决定幻觉控制强度与拒答策略
是否需要引用溯源到原文页码?决定元数据设计

3. 安全维度

问题影响
数据能否出域?决定 SaaS API vs 私有化部署
权限要求?(部门隔离/文档级/字段级)决定检索侧权限过滤方案
审计合规要求?决定日志与脱敏方案

4. 资源维度

  • 预算:GPU 资源、商用 API 费用
  • 团队技能:Python/运维能力
  • 交付时间:分别估算开源产品验证、自研链路和生产加固;不要把 Demo 工期当成上线工期

二、技术选型对比

1. 向量数据库

方案优势劣势适用
Milvus性能强、生态成熟、支持分布式组件多(etcd/MinIO)、运维复杂大规模生产
Qdrant轻量、Rust 实现、部署简单超大规模生态略弱中小规模
PGVector复用 PostgreSQL、与业务库一体性能有上限已有 PG、数据量中等
ElasticsearchBM25+向量混合检索天然支持向量性能一般、资源占用高已有 ES、需强关键词检索
FAISS库而非服务、极致性能无增删改管理能力实验/嵌入式场景

选型提醒:不要只按切片数量选向量库。还要用目标数据测试过滤条件、索引构建时间、P95 延迟、召回质量、备份恢复和团队运维能力;规模数字只能作为初筛条件。

2. Embedding 模型

模型特点
BGE 系列(bge-large-zh-v1.5 等)中文效果好,开源可私有化,C-MTEB 榜单常客
M3E中文轻量,适合资源受限
text-embedding-3(OpenAI)效果好但数据出域
Qwen-Embedding多语种,私有化友好

注意:Embedding 模型一旦换型号,全量向量必须重新生成(维度和语义空间都变了)。

3. OCR 引擎

方案特点
PaddleOCR开源免费、中文识别强、可私有化,表格还原一般
Tesseract开源、老牌,中文效果一般
商用 OCR API(阿里/腾讯/百度)精度高、版面还原好,按量付费、数据出域

4. 编排框架

框架定位
LangChain组件最全,代码级编排,学习曲线陡
LlamaIndex专注数据索引与检索,RAG 场景更聚焦
RAGFlow开源成品,深度文档解析强,适合企业知识库
Dify低代码平台,可视化编排,快速出 Demo

5. LLM 选型考量

  • 私有化:Qwen / DeepSeek / GLM 开源版本(需 GPU)
  • API 调用:效果优先选头部模型,注意 tokens 成本与限流
  • 生成链路建议模型可切换(配置化),避免厂商锁定

三、选型决策记录(模板)

每个选型结论应记录,便于后续复盘:

【决策项】向量数据库
【候选方案】Milvus / Qdrant / PGVector
【选择结果】Qdrant
【决策理由】切片量预估 50 万以内;团队无专职运维;Docker 单机即可
【牺牲项】未来超 500 万切片需迁移
【决策人/日期】xxx / 2026-xx-xx

四、典型技术栈组合示例

场景组合
企业私有化(金融/政企,数据敏感)可评估 RAGFlow/Dify + 本地模型 + OCR + 向量库;是否满足内网与合规要求需单独验证
中小团队快速验证托管编排平台 + 模型 API;先做小规模验证,再按数据边界决定是否私有化
定制化自研LangChain + PGVector + BGE + DeepSeek API,深度控制切片与检索策略

本篇交付与下一步

本阶段应产出需求清单、数据盘点、风险等级、候选方案实测结果和选型决策记录。工具版本、价格、许可和硬件要求变化较快,实施前应以官方文档和小规模基准测试重新核验。下一步进入 03-系统设计:架构与接口设计