基于 LangChain 搭建本地知识库系统
什么是 RAG
RAG(Retrieval-Augmented Generation,检索增强生成)是一种通过检索外部知识库来增强大语言模型(LLM)回答能力的架构。它允许模型在生成回答时参考最新的或私有的数据,从而解决训练数据截止和幻觉问题。
LLM 现存的痛点
现有的开源大模型通常基于公开网络数据训练,存在以下局限:
- 知识时效性:无法获取训练截止日期之后的新知识。
- 私有数据缺失:企业内部敏感数据未包含在公共语料中。
- 幻觉风险:面对未知问题时,模型可能编造事实。
RAG 通过将模型与外部知识源连接,确保回答基于准确的事实,降低幻觉概率,并减少频繁微调模型的成本。
环境准备
安装必要的依赖包:
pip install langchain
pip install langchain-community
pip install langchain-core
pip install langchain-experimental
pip install langserve[all]
pip install langchain-cli
pip install langsmith
核心组件配置
1. Embedding 模型配置
用于将文本转换为向量。以百度千帆为例:
from langchain_community.embeddings import QianfanEmbeddingsEndpoint
import os
def get_embedding():
os.environ["QIANFAN_AK"] = "YOUR_API_KEY"
os.environ["QIANFAN_SK"] = "YOUR_SECRET_KEY"
return QianfanEmbeddingsEndpoint()
2. LLM 配置
支持 Azure OpenAI 或 OpenAI 官方服务。
from langchain_openai import AzureChatOpenAI
def get_llm():
os.environ["AZURE_OPENAI_ENDPOINT"] = "YOUR_ENDPOINT"
os.environ["AZURE_OPENAI_API_KEY"] = "YOUR_KEY"
llm = AzureChatOpenAI(
azure_deployment="gpt-4",
openai_api_version="2023-05-15"
)
return llm
实现流程
- 加载文档:从 URL 或本地文件读取数据。


