极客前沿

手把手教你搭建离线 RAG 智能助手:无需 API 密钥

2026-07-02 01:31
DEV Ollama
查看原文

本文从头教你安装 Ollama、LangGraph 和 Qdrant,搭建一个完全离线的 RAG 智能助手,无需任何 API 密钥。

RAG(检索增强生成)是一种让 AI 能根据你本地数据回答问题的技术。它不需要联网,也不用申请各种 API 密钥,特别适合对数据隐私要求高的场景。下面我们一步步搭建一个离线 RAG 智能助手。

准备环境

你需要先安装以下三个工具:

  • Ollama:一个让你在本地运行大语言模型的工具。简单说,它就像一个“离线版 ChatGPT”,可以下载到你的电脑上使用。
  • LangGraph:一个用来构建 AI 工作流的框架。它帮你把“提问→检索数据→生成回答”这一连串步骤组织起来。
  • Qdrant:一个向量数据库,用来存储和快速查找你的本地数据。它像一个“智能文件夹”,能根据语义找到最相关的内容。

确保你的电脑有至少 8GB 内存,并安装了 Python 3.8 或更高版本。

Tutorial Image

安装步骤

  1. 安装 Ollama:前往 ollama.com 下载对应系统的安装包,运行后打开终端输入 ollama run llama3,等待模型下载完成。出现提示符即表示成功。
  2. 安装 Python 依赖:打开终端,执行 pip install langgraph qdrant-client ollama。这会安装所需的 Python 库。
  3. 启动 Qdrant:在终端运行 docker run -p 6333:6333 qdrant/qdrant(需先安装 Docker)。或者你也可以用嵌入式模式,直接通过 Python 代码启动。
  4. 编写你的第一个 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 支持的模型,比如 mistralgemma
  • 尝试用 LangGraph 添加更多步骤,比如多轮对话或数据过滤。

离线 RAG 让你完全掌控数据和模型,既省钱又安全。动手试试吧!

内容来源

DEV Ollama

发布时间

2026-07-02 01:31

返回 AI技术