基于 LangChain RAG 构建本地 AI 知识库助手
利用检索增强生成(RAG)技术,我们可以开发一个 AI 机器人,该机器人能够读取 Markdown 文本作为知识库,实现简单快捷的私有化问答。
RAG 是什么
大型语言模型(LLMs)是在一个大型但固定的数据语料库上进行训练的,这限制了它们对于私人或最新信息的推理能力。检索增强生成(RAG)已经成为一种流行且强大的机制,用于扩展 LLM 的知识库,通过从外部数据源检索的文档来通过上下文学习来支持 LLM 生成。
技术栈
- LLM 服务器: Ollama
- 模型: mistral:latest
- Language Model Integration Framework: LangChain
- Web framework for API: FastAPI
工作原理
系统主要包含三个部分:
- 数据加载与切片:将本地 Markdown 文件加载并切分为适合嵌入的片段。
- 向量存储:使用 Embedding 模型将文本片段转换为向量并存入向量数据库。
- 检索与生成:用户提问时,检索相关片段,结合 Prompt 发送给 LLM 生成回答。
环境配置
1. 安装依赖
确保 Python 环境已就绪,创建虚拟环境并安装所需包。
pip install -r requirements.txt
requirements.txt 内容如下:
langchain==0.1.0
langchain-community==0.0.6
fastapi==0.109.0
uvicorn[standard]==0.27.0
python-dotenv==1.0.0
ollama==0.1.0
chromadb==0.4.22
2. 配置环境变量
获取你的 langchain API Key(如使用 OpenAI 或其他服务),并将其配置在 .env.example 环境变量中,复制为 .env 文件使其生效。
cp .env.example .env # MacOs or Linux
copy .env.example .env # Windows
.env 示例内容:
LANGCHAIN_API_KEY=your_api_key_here
OLLAMA_BASE_URL=http://localhost:11434
3. Ollama 模型配置
确保 Ollama 服务正在运行。
pip install ollama
ollama run mistral:latest
ollama list


