《本地 RAG 完全搭建指南:从 0 到 1 手把手教程》Python + m3e-base + FAISS + 本地大模型(或 API)
前言本文带你从零搭建一套纯本地 RAG 系统向量模型m3e-base最强中文开源 Embedding向量库FAISSFacebook 开源轻量本地向量库文档本地 TXT / MD大模型可本地 LLaMA、Qwen、ChatGLM也可临时用通义 / DeepSeek API 演示目标本地离线运行、无数据外泄、可直接用于企业知识库一、环境准备一步一步来1.1 安装 Python建议版本Python 3.9 ~ 3.111.2 创建虚拟环境推荐bash运行conda create -n local_rag python3.10 conda activate local_rag1.3 安装依赖必装bash运行pip install torch pip install sentence-transformers pip install faiss-cpu pip install langchain pip install langchain-community全部 CPU 版本任何电脑都能跑。1.4 核心依赖包作用解析为什么要装这 5 个很多初学者会疑惑为什么搭建本地 RAG 需要这五个库它们各自在系统中扮演着不可或缺的角色共同构成了 RAG 的技术底座。以下是每个包的核心职责表格依赖包核心定位在本项目中的具体作用torch底层算力引擎提供深度学习所需的张量计算和 GPU 加速支持。它是运行 m3e-base 模型的基础没有它所有 AI 模型都无法启动。sentence-transformers向量生成工具专门用于加载和运行句向量模型如 m3e-base。它封装了复杂的模型调用逻辑让我们可以用一行代码将文本转换为向量。faiss-cpu本地向量数据库Facebook 开源的高效检索库。负责存储向量并提供毫秒级的相似度计算能力是实现 “语义搜索” 的核心。langchainRAG 流程框架大模型应用开发的 “胶水” 框架。它提供了标准化的接口帮我们把 “文档加载→向量化→检索→生成” 的全流程串联起来。langchain-community生态连接器LangChain 的社区扩展库。它提供了对 FAISS 和 HuggingFace 模型的官方支持是让 LangChain 能 “指挥” 动本地向量库和模型的关键桥梁。一句话总结工作流torch提供动力 →sentence-transformers运行 m3e 生成向量 →faiss-cpu负责检索 →langchain调度全局 →langchain-community打通组件。二、核心组件说明m3e-base向量模型把文本 → 768 维向量FAISS本地向量数据库存向量 做检索LangChain把整个流程串起来本地文档你自己的知识文件.txt/.md三、第一步准备你的知识库文档在项目下新建文件夹plaintextmy_docs/ └── info.txt在info.txt里随便写点测试内容例如plaintext公司上班时间为周一到周五9:00-18:00午休1小时。 员工每年可享受5天带薪年假入职满一年后生效。 加班需要提前申请经部门经理审批通过后才算有效加班。四、第二步加载文档 → 分块 → 向量化 → 构建 FAISS 库新建文件build_rag_db.pypython运行from langchain.vectorstores import FAISS from langchain.document_loaders import TextLoader from langchain.text_splitter import RecursiveCharacterTextSplitter from langchain.embeddings import HuggingFaceEmbeddings # 1. 加载文档 loader TextLoader(my_docs/info.txt, encodingutf-8) documents loader.load() # 2. 文档分块 text_splitter RecursiveCharacterTextSplitter( chunk_size200, chunk_overlap50 ) texts text_splitter.split_documents(documents) # 3. 使用 m3e-base 向量模型 model_name moka-ai/m3e-base embedding HuggingFaceEmbeddings( model_namemodel_name, model_kwargs{device: cpu}, encode_kwargs{normalize_embeddings: True} ) # 4. 构建 FAISS 向量库 db FAISS.from_documents(texts, embedding) # 5. 保存到本地 db.save_local(faiss_db) print(向量库构建完成已保存到 faiss_db/)运行bash运行python build_rag_db.py成功后会生成plaintextfaiss_db/ ├── index.faiss └── index.pkl五、第三步加载向量库 测试检索新建文件test_retrieval.pypython运行from langchain.embeddings import HuggingFaceEmbeddings from langchain.vectorstores import FAISS # 加载 m3e-base embedding HuggingFaceEmbeddings( model_namemoka-ai/m3e-base, model_kwargs{device: cpu}, encode_kwargs{normalize_embeddings: True} ) # 加载本地向量库 db FAISS.load_local( faiss_db, embedding, allow_dangerous_deserializationTrue ) # 测试检索 query 我年假有几天 retriever db.as_retriever(search_kwargs{k: 1}) docs retriever.get_relevant_documents(query) print(检索结果) for doc in docs: print(doc.page_content)运行bash运行python test_retrieval.py你会看到plaintext员工每年可享受5天带薪年假入职满一年后生效。✅检索成功六、第四步接入大模型完成完整 RAG 回答这里给你最简单可跑版本你可以换成本地 LLaMAQwenChatGLM任何 OpenAI 格式 API这里先用最简单的 API 方式演示你有本地模型我也能给你改新建文件rag_chat.pypython运行from langchain.embeddings import HuggingFaceEmbeddings from langchain.vectorstores import FAISS from langchain.chains import RetrievalQA from langchain.prompts import PromptTemplate from langchain.llms import OpenAI # # 1. 加载 m3e-base FAISS # embedding HuggingFaceEmbeddings( model_namemoka-ai/m3e-base, model_kwargs{device: cpu}, encode_kwargs{normalize_embeddings: True} ) db FAISS.load_local( faiss_db, embedding, allow_dangerous_deserializationTrue ) retriever db.as_retriever(search_kwargs{k: 1}) # # 2. 提示词模板关键 # prompt_template 你根据以下资料回答问题不要编造。 资料{context} 问题{question} prompt PromptTemplate( templateprompt_template, input_variables[context, question] ) # # 3. 接入大模型 # # 这里替换成你的本地模型或API llm OpenAI( base_urlhttp://你的本地模型地址/v1, api_keydummy, temperature0.1 ) # # 4. 构建RAG链 # qa_chain RetrievalQA.from_chain_type( llmllm, chain_typestuff, retrieverretriever, chain_type_kwargs{prompt: prompt} ) # # 5. 开始提问 # query 我年假有几天 result qa_chain.run(query) print(回答, result)运行bash运行python rag_chat.py输出plaintext回答你每年可享受5天带薪年假入职满一年后生效。✅完整 RAG 运行成功七、整套系统结构总结plaintext用户问题 → m3e-base 向量化 → FAISS 检索 → 取出相关段落 → 送给大模型 → 精准回答八、常见问题你一定会遇到1. m3e-base 下载慢去ModelScope(m3e-base · 模型库)下载到本地, 特别提醒手动下载一定要下全建议把所有文件和目录都下载2. 检索不到分块太大 / 太小问题和文档语义差太远必须用同一个 m3e-base 模型构建和查询3. 大模型回答乱编把 temperature 设为 0.1提示词强制只看资料不许编造4. 纯 CPU 速度慢正常m3e-base CPU 完全够用并发高再上 GPU

相关新闻

突破Windows与Android生态壁垒:WSABuilds革新跨系统应用运行体验

突破Windows与Android生态壁垒:WSABuilds革新跨系统应用运行体验

突破Windows与Android生态壁垒:WSABuilds革新跨系统应用运行体验 【免费下载链接】WSABuilds Run Windows Subsystem For Android on your Windows 10 and Windows 11 PC using prebuilt binaries with Google Play Store (MindTheGapps) and/or Magisk or KernelSU…

2026/5/17 11:03:45 阅读更多 →
记一次 C 盘 18G 异常占用的排查:CapabilityAccessManager.db-wal 究竟是个什么鬼?

记一次 C 盘 18G 异常占用的排查:CapabilityAccessManager.db-wal 究竟是个什么鬼?

今天打开电脑,突然发现 C 盘飘红。本以为是日常的 node_modules 堆积或者编译缓存,结果用微软自带的电脑管家(以及磁盘分析工具)一扫,揪出了一个极度反常的巨无霸:在 ProgramData 目录下,有一个…

2026/7/4 23:53:10 阅读更多 →
开源工具与云服务协同:构建跨平台数据保护与云同步解决方案

开源工具与云服务协同:构建跨平台数据保护与云同步解决方案

开源工具与云服务协同:构建跨平台数据保护与云同步解决方案 【免费下载链接】btrfs WinBtrfs - an open-source btrfs driver for Windows 项目地址: https://gitcode.com/gh_mirrors/bt/btrfs 🌐 数据保护的双重挑战:本地安全与云端备…

2026/7/4 19:39:41 阅读更多 →

最新新闻

LaTeX-Workshop环境变量深度解析:高级配置与性能优化实战

LaTeX-Workshop环境变量深度解析:高级配置与性能优化实战

LaTeX-Workshop环境变量深度解析:高级配置与性能优化实战 【免费下载链接】LaTeX-Workshop Boost LaTeX typesetting efficiency with preview, compile, autocomplete, colorize, and more. 项目地址: https://gitcode.com/gh_mirrors/la/LaTeX-Workshop 作…

2026/7/5 20:04:16 阅读更多 →
CANN特征向量检索指南

CANN特征向量检索指南

特征向量检索(FV) 【免费下载链接】docs 该仓库用于维护cann公共文档 项目地址: https://gitcode.com/cann/docs 基本原理 该部分主要实现了对特征检索的功能验证,生成随机底库,随机生成特征数据进行特征检索(…

2026/7/5 20:04:16 阅读更多 →
5个核心场景解锁:NBTExplorer可视化编辑器让Minecraft数据编辑变得如此简单

5个核心场景解锁:NBTExplorer可视化编辑器让Minecraft数据编辑变得如此简单

5个核心场景解锁:NBTExplorer可视化编辑器让Minecraft数据编辑变得如此简单 【免费下载链接】NBTExplorer A graphical NBT editor for all Minecraft NBT data sources 项目地址: https://gitcode.com/gh_mirrors/nb/NBTExplorer 你是否曾经因为看不懂Minec…

2026/7/5 19:58:15 阅读更多 →
终极黑苹果配置革命:智能硬件识别与OpenCore自动化配置

终极黑苹果配置革命:智能硬件识别与OpenCore自动化配置

终极黑苹果配置革命:智能硬件识别与OpenCore自动化配置 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 在传统黑苹果配置过程中&#xff0…

2026/7/5 19:58:15 阅读更多 →
D-Link DCS摄像头CVE-2020-25078漏洞剖析与批量检测脚本实现

D-Link DCS摄像头CVE-2020-25078漏洞剖析与批量检测脚本实现

1. 项目概述:一次对D-Link DCS监控设备信息泄露漏洞的深度剖析最近在整理网络设备安全审计案例时,一个老生常谈但又屡见不鲜的漏洞类型再次引起了我的注意——硬编码或未授权访问导致的信息泄露。D-Link DCS系列网络监控摄像头爆出的CVE-2020-25078漏洞&…

2026/7/5 19:58:15 阅读更多 →
Roblox Account Manager终极指南:一站式管理多个Roblox账户的完整解决方案

Roblox Account Manager终极指南:一站式管理多个Roblox账户的完整解决方案

Roblox Account Manager终极指南:一站式管理多个Roblox账户的完整解决方案 【免费下载链接】Roblox-Account-Manager Application that allows you to add multiple accounts into one application allowing you to easily play on alt accounts without having to …

2026/7/5 19:53:53 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻