08 - 检索增强(RAG):文档问答系统
约 228 字小于 1 分钟
LangChain
2026-03-08
一、什么是 RAG?
RAG(Retrieval-Augmented Generation) = 检索 + 生成
核心流程
\
用户问题 → 检索相关文档 → 组合 Prompt → LLM 生成回答 \\
二、文档加载器
2.1 PDF 加载
\\python from langchain_community.document_loaders import PyPDFLoader
loader = PyPDFLoader("document.pdf") pages = loader.load() \\
2.2 文本加载
\\python from langchain_community.document_loaders import TextLoader
loader = TextLoader("file.txt") documents = loader.load() \\
三、向量数据库
3.1 Chroma
\\python from langchain_community.vectorstores import Chroma from langchain_openai import OpenAIEmbeddings
创建向量存储
vectorstore = Chroma.from_documents( documents=pages, embedding=OpenAIEmbeddings(), persist_directory="./chroma_db" )
检索
results = vectorstore.similarity_search("查询内容", k=3) \\
四、实战案例
\\python from langchain.chains import RetrievalQA from langchain_openai import ChatOpenAI
创建检索链
qa = RetrievalQA.from_chain_type( llm=ChatOpenAI(), chain_type="stuff", retriever=vectorstore.as_retriever() )
提问
answer = qa.run("文档的主要观点是什么?") \\
五、本课小结
- RAG = 检索 + 生成
- 文档加载器支持多种格式
- 向量数据库用于语义搜索
下一课:09 - 工具