手把手教你搭建离线 RAG 智能助手:无需 API 密钥
本文从头教你安装 Ollama、LangGraph 和 Qdrant,搭建一个完全离线的 RAG 智能助手,无需任何 API 密钥。
RAG(检索增强生成)是一种让 AI 能根据你本地数据回答问题的技术。它不需要联网,也不用申请各种 API 密钥,特别适合对数据隐私要求高的场景。下面我们一步步搭建一个离线 RAG 智能助手。
准备环境
你需要先安装以下三个工具:
- Ollama:一个让你在本地运行大语言模型的工具。简单说,它就像一个“离线版 ChatGPT”,可以下载到你的电脑上使用。
- LangGraph:一个用来构建 AI 工作流的框架。它帮你把“提问→检索数据→生成回答”这一连串步骤组织起来。
- Qdrant:一个向量数据库,用来存储和快速查找你的本地数据。它像一个“智能文件夹”,能根据语义找到最相关的内容。
确保你的电脑有至少 8GB 内存,并安装了 Python 3.8 或更高版本。
安装步骤
- 安装 Ollama:前往 ollama.com 下载对应系统的安装包,运行后打开终端输入
ollama run llama3,等待模型下载完成。出现提示符即表示成功。 - 安装 Python 依赖:打开终端,执行
pip install langgraph qdrant-client ollama。这会安装所需的 Python 库。 - 启动 Qdrant:在终端运行
docker run -p 6333:6333 qdrant/qdrant(需先安装 Docker)。或者你也可以用嵌入式模式,直接通过 Python 代码启动。 - 编写你的第一个 RAG 脚本:创建一个 Python 文件,例如
first_rag.py,写入以下核心代码:from langgraph.graph import StateGraph import ollama from qdrant_client import QdrantClient # 连接本地 Qdrant client = QdrantClient("localhost", port=6333) # 定义检索函数 def retrieve(query): # 将查询转为向量并搜索 results = client.search( collection_name="my_docs", query_vector=ollama.embeddings(model="llama3", prompt=query)["embedding"] ) return [r.payload["text"] for r in results] # 定义生成函数 def generate(state): context = "\n".join(retrieve(state["query"])) response = ollama.generate(model="llama3", prompt=f"基于以下信息回答:{context}\n问题:{state['query']}") return {"response": response["response"]} # 构建工作流 workflow = StateGraph(dict) workflow.add_node("generate", generate) workflow.set_entry_point("generate") app = workflow.compile() # 运行 result = app.invoke({"query": "什么是 RAG?"}) print(result["response"])
验证是否成功
运行 python first_rag.py,如果终端输出了关于 RAG 的解释,说明你的离线智能助手已经跑通了!如果报错,常见原因是:
- Ollama 服务未启动——确保
ollama serve在后台运行。 - Qdrant 未连接——检查 Docker 容器是否启动,或者改用嵌入式模式。
- 模型未下载——运行
ollama pull llama3手动下载。
下一步可以做什么
现在你可以:
- 把自己的文档(PDF、TXT 等)存入 Qdrant,让 AI 基于你的私有数据回答问题。
- 更换其他 Ollama 支持的模型,比如
mistral或gemma。 - 尝试用 LangGraph 添加更多步骤,比如多轮对话或数据过滤。
离线 RAG 让你完全掌控数据和模型,既省钱又安全。动手试试吧!
内容来源
DEV Ollama
发布时间
2026-07-02 01:31