提示工程
进阶
RAG实战:用LangChain构建企业知识库问答系统
基于LangChain和向量数据库,从文档处理到检索生成,完整实现一个RAG问答系统。
检索增强生成(RAG)是当前最实用的AI应用架构之一。本文将使用LangChain框架,从零构建一个企业知识库问答系统。
系统架构
我们的RAG系统包含四个核心模块:文档加载与分块、向量化与存储、语义检索、答案生成。
文档处理
from langchain.text_splitter import RecursiveCharacterTextSplitter\nsplitter = RecursiveCharacterTextSplitter(\n chunk_size=500,\n chunk_overlap=50\n)\nchunks = splitter.split_documents(documents)向量化存储
使用OpenAI Embeddings将文档块转换为向量,存入Chroma向量数据库:
from langchain.vectorstores import Chroma\nfrom langchain.embeddings import OpenAIEmbeddings\nvectorstore = Chroma.from_documents(\n chunks, OpenAIEmbeddings(), persist_directory="./db"\n)检索与生成
构建检索链,将相关文档作为上下文注入Prompt:
from langchain.chains import RetrievalQA\nqa = RetrievalQA.from_chain_type(\n llm=ChatOpenAI(model="gpt-4.1-mini"),\n retriever=vectorstore.as_retriever(search_kwargs={"k": 3})\n)优化技巧
使用混合检索(向量+关键词)提升召回率;添加重排序(reranker)提升精度;对长文档使用摘要索引。