Skip to content

PRD: [RAG 产品名称]

元数据内容
文档状态[草稿 / 评审中 / 已定稿]
版本号v[0.1.0]
作者[姓名]
创建日期[YYYY-MM-DD]
最后更新[YYYY-MM-DD]
RAG 类型[通用知识库 / 企业知识问答 / 客服辅助 / 代码搜索]

1. 产品概述

1.1 定位与愿景

[用 3-5 句话描述 RAG 产品的定位。例如:本产品是一个基于 RAG(检索增强生成)技术的[产品类型],将[知识源类型]转化为可供 LLM 检索的知识库,让用户通过自然语言获取精准、可溯源的答案,显著提升[核心场景]的信息获取效率。]

1.2 目标用户

  • 主要用户:[如:企业员工、客服人员、研究员]
  • 使用场景:[如:内部知识问答、政策法规查询、技术文档检索]
  • 用户规模:[如:初期 1,000 人,目标 10,000 人]

1.3 用户痛点

  1. [痛点 1]:[如:公司内部信息分散在不同系统,找资料费时]
  2. [痛点 2]:[如:LLM 直接回答存在幻觉,且无法提供来源]
  3. [痛点 3]:[如:现有搜索引擎关键词匹配差,语义理解不足]
  4. [痛点 4]:[如:知识更新不及时,回答总是过时的]

1.4 成功指标

指标目标值测量方式
回答准确率≥ [X]%[人工评估 + 自动评估集]
检索命中率 (Recall@K)≥ [X]% @ K=[X][评测集评估]
引用准确率≥ [X]%[引用来源验证]
首轮解决率≥ [X]%[用户无需追问直接获得答案的比例]
知识更新延迟≤ [X] 小时[从文档上传到可检索]

2. 知识源与格式

2.1 支持的知识源

知识源类型格式优先级说明
内部文档[Markdown / PDF / Word / TXT]P0[如:公司内部 Wiki、技术文档]
API 文档[OpenAPI / Swagger / HTML]P1[如:内部微服务 API 文档]
FAQ 数据集[CSV / JSON / Excel]P0[如:常见问题与标准回答]
代码仓库[GitHub / GitLab 仓库]P1[如:README、文档、注释]
数据库记录[MySQL / PostgreSQL / MongoDB]P2[如:产品数据字典]
网页内容[URL 抓取 / Sitemap]P2[如:官网帮助中心]

2.2 格式处理 Pipeline

知识源 → 格式解析器 → 内容提取 → 清洗 → 结构化 → 知识切片
  • 格式解析器:[如:Unstructured.io / PyMuPDF / Pandoc]
  • 内容提取:[如:提取纯文本、表格、图片说明文字]
  • 清洗规则:[如:去除页眉页脚、去除 HTML 标签、统一编码 UTF-8]
  • 结构化:[如:保留标题层级、分离表格与正文、标记代码块]

2.3 更新策略

  • 增量更新:[支持/不支持],监听文件变化自动更新
  • 全量重建:[按需/定时],[如:每周日凌晨全量重建索引]
  • 版本控制:[如:每次更新保留历史版本,支持回滚]

3. 分块策略 (Chunking)

3.1 分块方案

策略名称分块尺寸重叠窗口适用场景
固定大小分块[如:512 tokens][如:128 tokens][通用兜底方案]
语义分块动态(段落级)[如:1 句重叠][文档结构清晰时优先]
层级分块章节/小节/段落[按结构嵌套][长文档、书籍、规范]
递归分块从句子 → 段落递进[如:10% 重叠][结构不规则的混合内容]

3.2 分块规则

  • 最小块大小:[如:≥ 50 tokens,太短则合并]
  • 最大块大小:[如:≤ 2,000 tokens,过长则拆分]
  • 标题继承:[如:每个块携带所在章节的标题链作为元数据]
  • 代码块保护:[如:完整代码块不做拆分]
  • 表格保护:[如:完整表格作为一个 chunk]

3.3 Chunk 元数据 Schema

json
{
  "chunk_id": "uuid",
  "source_file": "文档路径",
  "titles": ["一级标题", "二级标题"],
  "page_number": 12,
  "chunk_index": 3,
  "token_count": 512,
  "content_type": "text/code/table"
}

4. Embedding 选型

4.1 Embedding 模型选择

模型向量维度最大输入价格适用场景
[如:text-embedding-3-small]1,5368K tokens¥[X]/M tokens[通用场景,性价比高]
[如:text-embedding-3-large]3,0728K tokens¥[X]/M tokens[高精度场景,成本敏感]
[如:bge-large-zh-v1.5]1,024512 tokens免费(自建)[中文场景优化,本地部署]
[如:gte-Qwen2-1.5B]1,53632K tokens免费(自建)[长文本、中英双语]

4.2 向量存储

方案索引类型支持混合检索说明
[如:Pinecone][HNSW][是/否][托管服务,免运维]
[如:Milvus][IVF_FLAT / HNSW][是][自建,适合大规模]
[如:Qdrant][HNSW][是][轻量级,支持过滤]
[如:pgvector][IVFFlat / HNSW][否][PostgreSQL 插件,小规模]

4.3 Embedding 策略

  • 多向量策略:[如:同一文本块使用多个 embedding 模型,查询时加权融合]
  • 降维策略:[如:默认 1,536 维,支持通过 PCA 降至 256 维]
  • 缓存策略:[如:常见查询 embedding 结果缓存 1 小时]
  • 刷新频率:[如:知识库更新时重新计算 embedding]

5. 混合检索策略

5.1 检索 Pipeline

用户查询 → 查询重写 → 多路检索 → 重排序 → Top-K 返回

5.2 检索算法

检索路算法权重说明
稠密检索 (Dense)[向量相似度 (Cosine / IP)][如:0.6][语义匹配,主要路]
稀疏检索 (Sparse)[BM25 / SPLADE][如:0.3][关键词匹配,补充路]
混合检索 (Hybrid)[RRF (Reciprocal Rank Fusion)][按 rank 融合][融合稠密+稀疏结果]
元数据过滤[结构化查询][前置过滤][按时间/来源/作者筛选]

5.3 查询优化

优化手段说明
查询重写[LLM 将用户口语化问题转为检索友好表达]
查询扩写[使用同义词 / 相关术语扩展查询范围]
消歧[用户多次查询后,结合上下文做消歧]
HyDE[先生成假设答案,再检索相似文档]
多轮检索[首轮粗略检索 → 分析后做精细检索]

5.4 重排序 (Reranking)

  • 使用的 Re-ranker:[如:Cohere Rerank / BGE-Reranker / Cross-Encoder]
  • 重排序 Top-K:[如:取检索 Top 50 → 重排序后取 Top 5]
  • 重排序指标:[如:NDCG@5 ≥ 0.8]

6. 引用溯源设计

6.1 引用格式

[回答正文]

引用来源

  1. 📄 [文档标题] — [来源路径] — [页数/位置] — [可信度: 高]
  2. 📄 [文档标题] — [来源路径] — [页数/位置] — [可信度: 中]

6.2 溯源粒度

粒度级别说明示例
文档级[仅标注来自哪篇文档][来源:员工手册 v3.pdf]
章节级[标注具体章节][来源:员工手册 → 第四章 薪酬福利]
段落级[标注具体段落][来源:员工手册 → 4.2 节 第 3 段]
行级[标注具体行号][来源:config.yaml: 第 25-30 行]

6.3 引用交互

  • [交互 1]:点击引用跳转到源文档对应位置
  • [交互 2]:悬停引用时展示源文档片段预览
  • [交互 3]:用户可选择只看某一个来源的回答
  • [交互 4]:来源可信度标识(高/中/低 + 原因说明)

6.4 无引用策略

  • 无引用回答:当检索结果不足以支撑回答时:[告知用户 / 拒绝回答 / 注明"推测"]
  • 多源冲突:不同来源信息冲突时:[并列展示 + 标注差异 + 建议人工确认]

7. 非功能需求

7.1 性能

阶段P50 延迟P99 延迟
文档处理/索引≤ [X] 秒/文档≤ [Y] 秒/文档
检索(不含生成)≤ [X] ms≤ [Y] ms
检索+生成 (E2E)≤ [X] 秒≤ [Y] 秒

7.2 存储容量

存储项预估规模存储方案
原始文档[X] TB[如:S3 / OSS]
向量索引[X] GB[如:Milvus 集群]
结构化元数据[X] GB[如:PostgreSQL]
全文索引[X] GB[如:Elasticsearch]

7.3 隐私与权限

  • 文档级权限:[如:用户只能检索自己有权限的文档]
  • 检索结果过滤:[如:根据用户角色过滤不可见的片段]
  • 审计日志:[如:记录每次检索的用户、查询内容、返回来源]
  • 数据隔离:[如:多租户环境下的知识库完全隔离]

8. 实施路线图

里程碑时间交付物负责人
M1:MVP 检索YYYY-MM-DD单知识源 + 向量检索 + 基础回答[姓名]
M2:混合检索YYYY-MM-DDBM25 + 稠密混合 + 重排序[姓名]
M3:引用溯源YYYY-MM-DD段落级引用 + 来源跳转[姓名]
M4:多知识源YYYY-MM-DD多格式支持 + 增量更新[姓名]
M5:企业版YYYY-MM-DD权限管理 + 审计 + 多租户[姓名]

9. 风险与缓解

风险概率影响缓解措施
[检索质量不达标][高/中/低][高/中/低][如:多轮迭代分块策略 + 专家标注评测集]
[知识更新延迟][高/中/低][高/中/低][如:事件驱动的增量索引,设置最大延迟告警]
[幻觉 + 引用不匹配][高/中/低][高/中/低][如:强制要求引用对应原文,无引用不回答]
[大规模向量存储成本][高/中/低][高/中/低][如:量化压缩 + 淘汰低频文档 + 分层存储]

10. 附录

10.1 相关文档

  • [分块策略实验报告]
  • [Embedding 模型基准测试]
  • [混合检索参数调优记录]

10.2 术语表

术语定义
RAG (检索增强生成)[将检索到的相关文档片段作为上下文输入 LLM 来生成回答]
Chunk[知识库中最小检索单元]
HyDE[假设文档嵌入,先生成假设答案再用它检索]
RRF[倒数排名融合,混合检索结果的融合算法]

10.3 变更日志

版本日期变更内容作者
v0.1.0YYYY-MM-DD初稿创建[姓名]

MIT License