提示工程 进阶

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)提升精度;对长文档使用摘要索引。