技术支持

为您提供7*24小时在线技术支持、安全技术专家、行业资深安全顾问服务。400-888-1688

AI大模型

您当前位置首页 > 技术支持 > AI大模型

基于开源大模型的RAG知识库系统搭建完整教程

RAG(检索增强生成)是将大模型与企业私有知识库结合的主流方案。通过检索相关文档片段再让模型生成回答,既保证了回答的时效性,又解决了大模型知识截止和幻觉问题。本文使用DeepSeek-R1和Qwen2.5-MAX作为基座模型讲解搭建流程。

一、系统架构概览

一个完整的RAG系统包含以下核心组件:

  • 文档加载器:支持PDF、Word、HTML、Markdown等多种格式
  • 文本分割器:将长文档切分为语义完整的片段
  • 向量嵌入模型:将文本转化为向量表示
  • 向量数据库:存储和检索向量,如Milvus、Qdrant、Chroma
  • 大语言模型:根据检索结果生成最终回答
  • 重排序器:对检索结果进行精细排序,提升准确率

二、环境搭建与依赖安装

code
pip install langchain langchain-community chromadb
pip install sentence-transformers  # 嵌入模型
pip install ollama                 # 本地推理

# 拉取嵌入模型
ollama pull nomic-embed-text

# 拉取DeepSeek-R1作为回答模型
ollama pull deepseek-r1:7b

三、核心代码实现

code
from langchain_community.embeddings import OllamaEmbeddings
from langchain_community.llms import Ollama
from langchain_community.vectorstores import Chroma
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.document_loaders import DirectoryLoader
from langchain.chains import RetrievalQA

# 1. 加载文档
loader = DirectoryLoader("./docs/", glob="**/*.md")
documents = loader.load()

# 2. 分割文档
text_splitter = RecursiveCharacterTextSplitter(
    chunk_size=1000,
    chunk_overlap=200,
    separators=["

", "
", "。", "!", "?", " ", ""]
)
chunks = text_splitter.split_documents(documents)

# 3. 创建向量库
embeddings = OllamaEmbeddings(model="nomic-embed-text")
vectorstore = Chroma.from_documents(
    documents=chunks,
    embedding=embeddings,
    persist_directory="./chroma_db"
)

# 4. 创建RAG问答链
llm = Ollama(model="deepseek-r1:7b", temperature=0.3)
qa_chain = RetrievalQA.from_chain_type(
    llm=llm,
    chain_type="stuff",
    retriever=vectorstore.as_retriever(search_kwargs={"k": 4})
)

# 5. 提问
result = qa_chain.run("DeepSeek-R1支持哪些量化版本?")
print(result)

四、优化技巧

  • 混合检索:结合向量相似度搜索和关键词BM25搜索,提升召回率
  • HyDE:先让模型根据问题生成假设文档,再用假设文档检索,提高语义匹配度
  • 多轮对话:保存历史对话记录,支持追问和上下文理解
  • 引用溯源:在回答中标注信息来源,便于验证答案准确性

五、生产环境部署建议

对于生产环境,建议使用Milvus或Qdrant作为向量数据库(替代Chroma),使用FastAPI搭建API服务,并配置缓存层提升响应速度。非结构化数据量超过100万条时,推荐使用Elasticsearch的向量检索功能。

这条帮助是否解决了您的问题? 已解决 未解决

安全合格的云服务,让您的业务轻松上云!

立即选购
https://affim.baidu.com/unique_50626027/chat?siteId=21806899&userId=50626027&siteToken=f4b13c0dda3b403b51fd8811d5a360c7