2026年RAG检索增强生成依旧是AI开发顶流,很多公司需要搭建私有本地知识库,核心诉求就是文档数据不上网,杜绝企业资料泄露。

市面上大部分RAG教程动辄上百行代码,还要部署复杂环境,新手根本跑不起来。本文只用20行极简Python代码,基于langchain+本地轻量向量库,快速搭建离线RAG问答系统,支持本地TXT文档问答,全程无需调用任何在线大模型接口,数据百分百安全。

一、环境一键安装

pip install langchain sentence-transformers chromadb

二、完整可运行RAG代码(20行精简版)

from langchain.vectorstores import Chroma
from langchain.embeddings import SentenceTransformerEmbeddings
from langchain.text_splitter import CharacterTextSplitter

# 1. 加载本地文档
with open("company_doc.txt","r",encoding="utf-8") as f:
    text = f.read()

# 2. 文档切片、向量化
text_splitter = CharacterTextSplitter(chunk_size=300,chunk_overlap=50)
split_docs = text_splitter.split_text(text)
embeddings = SentenceTransformerEmbeddings(model_name="all-MiniLM-L6-v2")

# 3. 构建本地向量库,全程离线
db = Chroma.from_texts(split_docs,embeddings,persist_directory="./chroma_db")
retriever = db.as_retriever(search_kwargs={"k":2})

# 4. 检索文档并回答问题
question = "公司的考勤制度是什么?"
search_docs = retriever.get_relevant_documents(question)
print("检索到的文档内容:")
for doc in search_docs:
    print(doc.page_content)

三、代码逐行讲解,新手也能看懂

  1. 文档加载:读取本地企业内部文档,所有数据保留在本地,不上传云端
  2. 文本切片:将长文档拆分为小块,提升向量检索精准度,避免上下文过长
  3. 本地向量化:使用开源离线Embedding模型,无需网络生成向量
  4. 向量检索:根据用户问题,匹配文档中最相关的内容,实现私有知识库问答

四、项目实战优化方案(适配企业开发)

  1. 支持多格式文档:扩展pdf、word文件读取,适配企业不同格式资料
  2. 优化切片规则:使用递归文本分割器,避免切断语义完整的语句
  3. 对接本地大模型:接入Qwen、Llama3本地模型,实现完整问答对话,不再只是检索文本

五、常见问题解答

Q:这套代码可以完全离线运行吗?

A:首次运行下载Embedding模型,后续全程离线,所有文档数据都保存在本地文件夹,不用担心数据泄露。

Q:可以部署到服务器供团队使用吗?

A:完全可以,搭配FastAPI封装接口,即可搭建团队内部私有文档问答平台。

总结

当下AI开发不必盲目追求复杂框架,极简版RAG就能满足大部分中小企业私有知识库需求。20行代码开箱即用,适合新手入门学习,也可以直接二次改造用于实际项目,低成本落地AI业务。

更多推荐