您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。[未知机构]:RAG实践手册:构建知识库和问答系统的实战指南 - 发现报告

RAG实践手册:构建知识库和问答系统的实战指南

2025-08-08-未知机构艳***
AI智能总结
查看更多
RAG实践手册:构建知识库和问答系统的实战指南

构建知识库和问答系统的实战指南 Jimmy Song 2025 年 08 月 08 日 目录 1引言. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1主要内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11.2面向读者 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11.3阅读本书的基础知识 . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 2RAG 原理与核心概念 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1什么是 RAG. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32.2RAG 的工作流程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 2.3.1RAG 参考架构的两大阶段. . . . . . . . . . . . . . . . . . . . . .52.3.2RAG 的分类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52.3.3RAG 架构的优势. . . . . . . . . . . . . . . . . . . . . . . . . . .6 3技术栈选择与架构设计 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1整体架构概览. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .83.2项目结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .83.3Cloudflare RAG 参考架构 . . . . . . . . . . . . . . . . . . . . . . . . .103.4核心技术栈介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .103.4.1Cloudflare Vectorize 架构细节. . . . . . . . . . . . . . . . . . .113.5技术栈选择的考量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .123.5.1Vectorize 的独特优势. . . . . . . . . . . . . . . . . . . . . . . .123.6小结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .134RAG 流水线总览. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14 4.1总体架构流程图. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .144.2模块职责速览. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .144.3关键参数一览. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .154.4语言策略概述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .164.5常见演进路线. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .164.6小结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17 5环境准备与依赖安装. . . . . . . . . . . . . . . . . . . . . . . . . . . . .18 5.1开发环境要求. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .185.2必要的 API 申请. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18 5.3Cloudflare 服务配置. . . . . . . . . . . . . . . . . . . . . . . . . . .195.3.1注册和配置 Cloudflare . . . . . . . . . . . . . . . . . . . . . . . .195.3.2创建 Vectorize 索引. . . . . . . . . . . . . . . . . . . . . . . . .195.3.3创建元数据索引 . . . . . . . . . . . . . . . . . . . . . . . . . . . .205.3.4查看索引信息 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .215.4项目初始化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .215.4.1环境变量配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .225.5验证配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .225.6小结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23 6知识库数据收集. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24 6.1数据源选择 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .246.2收集脚本示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .246.3小结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26 7Vectorize 数据结构说明 . . . . . . . . . . . . . . . . . . . . . . . . . . .27 7.1向量条目 Schema 概览. . . . . . . . . . . . . . . . . . . . . . . . . .277.2ID 生成策略. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .287.3URL 归一化与语言标记. . . . . . . . . . . . . . . . . . . . . . . . . .287.4分块与元数据截断原则. . . . . . . . . . . . . . . . . . . . . . . . . .297.5写入(Upsert)批次. . . . . . . . . . . . . . . . . . . . . . . . . . .29 7.6删除与清空策略. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .297.7容量与维度规划. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .307.7.1EMBED_DIM 对齐关系图. . . . . . . . . . . . . . . . . . . . . .307.8观测与指标 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .327.9风险与缓解 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .327.10演进方向 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .327.11小结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33 8嵌入生成与向量化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34 8.1选择合适的嵌入模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . .348.1.1常用嵌入模型及其维度 . . . . . . . . . . . . . . . . . . . . . . . .34 8.3向量存储与索引. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37 8.3.1Vectorize 向量格式 . . . . . . . . . . . . . . . . . . . . . . . . . .378.3.2向量元数据设计 . . . . . . . . . . . . . . . . . . . . . . . . . . . .388.3.3批量上传到 Vectorize. . . . . . . . . . . . . . . . . . . . . . . .388.3.4命名空间管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .398.3.5向量更新策略 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39 9Markdown 向量映射. . . . . . . . . . . . . . . . . . . . . . . . . . . .41 9.1路径与 Front‑matter. . . . . . . . . . . . . . . . . . . . . . . . . . .419.2分块算法 chunkText() . . . . . . . . . . . . . . . . . . . . . . . . . . .429.3短 ID 生成 generateShortId() . . . . . . . . . . . . . . . .