logo
03

RAG 系统入门

⏱️ 60分钟

RAG(Retrieval-Augmented Generation)是让 AI 能够基于你的私有数据回答问题的关键技术。

#什么是 RAG?

LLM 的知识有截止日期,也不知道你的私有数据。RAG 的解决方案:

  1. 检索(Retrieval): 从知识库中找到相关文档
  2. 增强(Augmented): 将文档作为上下文
  3. 生成(Generation): AI 基于上下文生成回答

#RAG 架构

code
用户问题 → 向量化 → 向量数据库检索 → 获取相关文档 → 构建 Prompt(问题 + 文档)→ LLM 生成回答

#核心组件

#1. 文档处理

python
from langchain.text_splitter import RecursiveCharacterTextSplitter splitter = RecursiveCharacterTextSplitter( chunk_size=1000, chunk_overlap=200 ) chunks = splitter.split_documents(documents)

#2. 向量化(Embedding)

python
from openai import OpenAI client = OpenAI() response = client.embeddings.create( model="text-embedding-3-small", input="你的文本" ) embedding = response.data[0].embedding

#3. 向量数据库

常用选择:

  • Pinecone: 托管服务,开箱即用
  • Chroma: 开源,本地运行
  • Weaviate: 功能丰富,支持多种搜索

#4. 检索和生成

python
# 检索相关文档 docs = vector_store.similarity_search(query, k=3) # 构建 Prompt context = "\n".join([doc.page_content for doc in docs]) prompt = f"""基于以下文档回答问题: 文档: {context} 问题:{query} """ # 生成回答 response = client.chat.completions.create( model="gpt-4", messages=[{"role": "user", "content": prompt}] )

#实践项目

构建一个简单的文档问答系统:

  1. 准备几个 PDF 文档
  2. 分块并向量化
  3. 实现问答功能

📚 相关资源

1v1免费职业咨询