你好,我是方可乐。 一个正在深耕AI编程的30+的程序员。 AI编程开发过100+小工具的在线网站(目标是干到500个),浏览器插件,微信小程序,AI智能体,RAG系统。
为什么我要做这个RAG系统?
目前很多企业都在做AI的赋能和转型,利用AI构建知识库能力,渐渐成为企业内部工具的标配。
在AI时代,想要成为AI应用开发相关的从业者,了解如何构建RAG系统,不管是出于工作需要还是学习提升自身能力,我认为都是一件很有必要的事情。
我为什么要做这件事呢?
除了以上原因,我觉得还是好奇。
好奇这整个链路都是怎么做的?好奇当前企业在做RAG的痛点在什么地方?好奇如何去解决这些痛点?
于是我携手Cursor,开始了我的RAG系统开发之旅。
RAG系统是什么?
RAG 系统的全称是 Retrieval-Augmented Generation(检索增强生成),是一种结合了 信息检索(Retrieval) 和 文本生成(Generation) 的人工智能技术架构,常用于构建智能问答系统、企业知识库助手、文档搜索问答系统等。它的核心目标是:让大语言模型不仅靠“记忆”(训练数据)回答问题,还能“查资料”再回答,提高准确性与时效性。
RAG 系统的结构分为两大核心模块
检索模块(Retriever)
作用:从外部知识库中,检索与用户问题相关的文档或片段(称为上下文 context)。
方式: 基于关键词(如 BM25) 基于向量相似度(使用 Embedding + 向量数据库) 混合检索(Hybrid Retrieval:关键词 + 向量)
工具:如 FAISS、Chroma、Milvus、Weaviate 等向量数据库
生成模块(Generator)
作用:将检索回来的上下文和用户问题一并输入到大语言模型(如 GPT、ChatGLM、DeepSeek)中,生成回答。
通常格式为:
代码块 [系统提示词 + 检索上下文 + 用户问题] → LLM → 回答结果
RAG 的基本流程图
代码块 A[用户提问] --> B[文本向量化]--> C[向量数据库检索相关内容]--> D[拼接上下文 + 问题]--> E[语言模型生成回答]
拆解做一个RAG系统
从上面的介绍,可以了解到,做一个RAG系统,分两条线:一、数据存放到向量数据库 二、检索知识并生成答案
数据存储这块,我分了5个步骤:
文档导入
文档预处理
文档切块
切块向量化
切块数据向量化
检索这块,大概也有5个步骤:
用户提问
用户提问文本向量化
到向量数据库检索内容
对检索到的内容进行排名
拼接问题+检索到的内容,发送给大模型生成规定格式/可读性较强的答案。
其实步骤都很清晰,为什么能做出来一个RAG系统的人,并不多呢?
原因在于上面的步骤,都有很多隐藏的坑。
看看我是如何挨个解决的。
数据存储
为了更好的阅读体验,来飞书看吧:
https://fdbs3cqzmm.feishu.cn/docx/BqE1dJwvkoNXcPxbcTLcp7DMnPb
Comments on "复盘:用Cursor从0到1做一个RAG系统——一场AI编程的渐进式开发实践" :