RAG三步骤图解:让大模型实时理解你的网站

📅 2026/7/17 20:24:49 👁️ 阅读次数 📝 编程学习
RAG三步骤图解:让大模型实时理解你的网站

本文以代码实例拆解RAG的索引构建、查询检索、答案生成三步骤,并给出基础/进阶/模块化三层次进化路径,帮助你掌握如何让大模型精准理解你的网站内容。


问题:大模型“失忆”,无法感知最新网站

大模型(如GPT、Claude)的知识截止于训练时的数据。如果你的网站今天刚刚上线,模型不可能“知道”它的存在。这让依赖实时内容的场景(FAQ、产品文档、技术博客)陷入困境——模型只能靠旧记忆回答,无法引用最新信息。

业界给出的优雅方案是:RAG(Retrieval-Augmented Generation,检索增强生成)。它让模型不再死记硬背,而是学会实时翻书。

方案:三步拆解 RAG 如何“看到”你的网站

RAG 的本质是检索 + 生成的协同。下面以代码级视角,拆解它的核心三步。

1. 索引构建:将网站“切碎”并编码

大模型无法直接读取 HTML 或 PDF,需要将内容转化为可搜索的向量。

  • 文档切分:将长网页按语义切割成块(通常 256-512 tokens)。例如一篇 5000 字的博客会被拆成 10 个片段,每个约 500 字。
  • 向量化:每个片段通过嵌入模型(如text-embedding-3-small)转化为高维向量(例如 768 维)。相似的内容产生几何上接近的向量。
  • 存储索引:向量存入数据库(如 Pinecone、Weaviate、Chroma),并建立快速检索索引(如 HNSW)。
# 示例:使用 LangChain 构建向量索引 from langchain.embeddings import OpenAIEmbeddings from langchain.vectorstores import Chroma from langchain.text_splitter import RecursiveCharacterTextSplitter # 切分 text_splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=100) chunks = text_splitter.split_text(your_website_text) # 向量化与存储 embeddings = OpenAIEmbeddings(model="text-embedding-3-small") vectorstore = Chroma.from_texts(chunks, embeddings)

2. 查询检索:找到最相关的内容

用户提问时,RAG 需要快速定位相关片段。关键区别在于:语义匹配而非关键词匹配。

  • 查询向量化:用户问题通过相同嵌入模型转换为向量。
  • 近似最近邻搜索:在向量数据库中,使用 HNSW 算法找到 K 个最接近的片段(K 通常为 3-10)。
  • 过滤与排序:根据余弦相似度排序,可加入元数据过滤(如仅检索营销类页面)。
# 示例:检索与用户问题最相关的片段 query = "我忘记密码怎么重置?" query_vector = embeddings.embed_query(query) results = vectorstore.similarity_search_by_vector(query_vector, k=5) for doc in results: print(doc.page_content)

3. 答案生成:让大模型“读”你的内容

检索到的片段被作为上下文喂给大模型。

  • 上下文注入:将 K 个片段拼接为结构化的 prompt
  • 生成回答:大模型(如 GPT-4)基于此上下文生成答案。若上下文不足以回答问题,应主动回答“抱歉,我没有找到相关信息”,而非编造。
# 示例:将检索结果注入 prompt 并调用 LLM context = "\n".join([doc.page_content for doc in results]) prompt = f"基于以下信息回答用户提问:\n{context}\n\n问题:{query}\n答案:" llm_response = llm.invoke(prompt)

实践:RAG 的三重进化

并非所有 RAG 系统都一样。根据场景复杂度,可分为三层:

基础 RAG(Naive RAG)

  • 简单切分 + 向量检索 + 直接回答
  • 局限:多跳推理或语义模糊时易遗漏关键片段
  • 适用场景:FAQ、知识库问答

进阶 RAG(Advanced RAG)

  • 查询重写:将“怎么付款”重写为“支付方式有哪些”
  • Hybrid Search:结合向量检索与 BM25 关键词检索,解决专有名词匹配问题
  • 重排序模型:对初始检索结果做精确排序,剔除噪声
# 示例:Hybrid Search 实现(结合向量与关键词) from langchain.retrievers import BM25Retriever, EnsembleRetriever bm25_retriever = BM25Retriever.from_texts(chunks) vector_retriever = vectorstore.as_retriever() ensemble_retriever = EnsembleRetriever(retrievers=[bm25_retriever, vector_retriever], weights=[0.3, 0.7]) results = ensemble_retriever.get_relevant_documents(query)

模块化 RAG(Modular RAG)

  • 可组合管道:记忆模块、多轮对话模块、甚至与其他大模型协同
  • 典型应用:自动化客服,支持上下文记忆和意图路由

总结

  • 核心机制:RAG 通过索引构建、查询检索、答案生成三步,让大模型学会“实时翻书”而非“死记硬背”
  • 工程师视角:你不需要讨好搜索引擎算法,但需要为 RAG 优化网站结构(清晰标题、语义化段落、结构化数据)
  • 未来方向:Agentic RAG(自主决策检索)和 多模态 RAG(检索图片/表格/视频)将进一步提升能力

一句话:未来的 AI 不再“搜索”你的网站,而是“理解”你的网站。

学习资源推荐

如果你想更深入地学习大模型,以下是一些非常有价值的学习资源,这些资源将帮助你从不同角度学习大模型,提升你的实践能力。

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!​

因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获取

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示

​因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获取

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获取

四、AI大模型商业化落地方案

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。