从零开始理解 RAG:AI 入门与动手实践
本文用白话解释什么是 RAG(检索增强生成),并带你完成一次简单的 RAG 环境搭建与运行。
很多朋友听说 AI 很厉害,但自己上手时却常常遇到一个问题:AI 模型虽然聪明,但它不知道你的私有数据。比如你问它公司内部文档里的信息,它可能胡乱编造。这就是所谓的“幻觉”。为了解决这个问题,出现了一个重要的技术——RAG(检索增强生成)。简单说,就是让 AI 在回答问题前,先去你指定的资料库里查一下,再结合查到的内容生成答案。这样答案更准确,也不容易胡说。
准备环境
在开始之前,你需要准备以下工具:
- Python 3.8 或更高版本:Python 是一种编程语言,很多 AI 工具都用它来编写。你可以去 python.org 下载安装。安装时记得勾选“Add Python to PATH”。
- pip:Python 的包管理工具,用来安装第三方库。一般安装 Python 时会自带。
- 一个代码编辑器:比如 VS Code(免费),用来写代码。
安装步骤
- 安装 LangChain 库:LangChain 是一个帮你搭建 RAG 系统的工具包。打开终端(Windows 是命令提示符,Mac 是终端),输入命令:
pip install langchain。 - 安装文档加载和向量存储工具:我们需要把文档变成 AI 能理解的格式。继续在终端输入:
pip install langchain-community chromadb。其中 ChromaDB 是一个向量数据库,用来存储和检索文档内容。 - 安装 OpenAI 的 API 库(可选):如果你想用 GPT 模型,需要安装:
pip install openai。同时你还需要一个 OpenAI 的 API key(可以去官网申请,有免费额度)。 - 准备一个示例文档:在你的电脑上新建一个文本文件,比如叫
my_knowledge.txt,里面写几句话,比如“公司的名称是 ABC 科技,成立于 2020 年。” 这个文件就是你的知识库。
验证是否成功
写一段简单的 Python 代码来测试 RAG 是否工作:
- 打开你的代码编辑器,新建一个文件
test_rag.py。 - 复制以下代码(注意:你需要把
your-api-key替换成你自己的 OpenAI API key):from langchain.embeddings import OpenAIEmbeddings from langchain.vectorstores import Chroma from langchain.text_splitter import CharacterTextSplitter from langchain.llms import OpenAI from langchain.chains import RetrievalQA # 1. 读取文档 with open("my_knowledge.txt") as f: text = f.read() # 2. 分割文本 text_splitter = CharacterTextSplitter(chunk_size=100, chunk_overlap=0) texts = text_splitter.split_text(text) # 3. 创建向量存储 embeddings = OpenAIEmbeddings(openai_api_key="your-api-key") docsearch = Chroma.from_texts(texts, embeddings) # 4. 创建问答链 qa = RetrievalQA.from_chain_type(llm=OpenAI(openai_api_key="your-api-key"), chain_type="stuff", retriever=docsearch.as_retriever()) # 5. 提问 query = "公司叫什么名字?" print(qa.run(query)) - 在终端运行:
python test_rag.py。如果输出“ABC 科技”,说明 RAG 成功从你的文档中找到了答案。
常见坑:如果提示“ModuleNotFoundError”,说明某个库没装全,回头检查 pip install 步骤。如果 API key 报错,检查 key 是否正确,或者是否设置了环境变量。
下一步可以做什么
现在你已经跑通了第一个 RAG 示例!接下来可以:
- 替换成你自己的文档(比如 PDF、网页内容),用 Unstructured 库加载更多格式。
- 换成其他模型,比如本地的 Llama 2,避免依赖外部 API。
- 尝试调整检索参数,让答案更精准。
RAG 是现代 AI 应用的核心技能,掌握它,你就能构建更可靠的智能系统。
内容来源
DEV Beginners
发布时间
2026-05-11 01:31