一、引言

在大模型(LLM)应用中,如何让模型准确回答领域知识问题是一个关键挑战。直接依赖预训练模型往往会遇到 幻觉(hallucination),因为模型可能“编造”不存在的事实。为了解决这一问题,业界提出了 RAG(Retrieval-Augmented Generation,检索增强生成) 方法:通过检索外部知识库,将相关信息提供给模型,从而提升回答的准确性。

LangChain由Chains、Agents、Memory、Tools四个核心组件组成的框架,支持复杂任务分解和多模型协作,内置多种 Memory 管理模式,方便多轮对话,与知识库、搜索引擎等工具集成方便。

本文将带大家用 LangChain 框架,结合向量数据库,构建一个简易的 RAG 系统,并完成一个端到端的问答任务。

二、环境配置

首先需要安装必要的依赖,包括 langchain、faiss 以及大模型 API 相关的依赖。

# 安装必要的依赖包!pip install langchain faiss-cpu openai tiktoken

这一步主要是为后续的文档切分、向量化存储以及调用大模型接口做准备。

三、加载与处理文档

我们需要先准备一个知识库,通常是一些本地的文本或 PDF 文件。LangChain 提供了丰富的文档加载器和文本切分工具。

from langchain.text_splitter import CharacterTextSplitterfrom langchain.document_loaders import TextLoader
# 加载本地文本文件loader = TextLoader("data/knowledge.txt", encoding="utf-8")documents = loader.load()
# 使用字符切分器将文档分块,避免太长影响向量化效果text_splitter = CharacterTextSplitter(chunk_size=500, chunk_overlap=50)docs = text_splitter.split_documents(documents)
print(f"文档总块数: {len(docs)}")

这里的逻辑是:先加载 → 再切分。切分后的文档会作为知识库的基本单元。

四、向量数据库构建

RAG 的核心在于“检索”,因此我们需要把切分后的文档存入 向量数据库(FAISS),以便后续通过相似度检索找到相关内容。

from langchain.embeddings.openai import OpenAIEmbeddingsfrom langchain.vectorstores import FAISS
# 使用 OpenAI Embeddings 将文档转为向量embedding_model = OpenAIEmbeddings()
# 构建向量数据库db = FAISS.from_documents(docs, embedding_model)
# 保存数据库到本地,方便下次直接加载db.save_local("faiss_index")

这样,我们就得到了一个可检索的知识库,可以随时调用。

五、大模型接入

在 LangChain 中,我们可以很方便地接入大语言模型(如 OpenAI GPT)。

from langchain.chat_models import ChatOpenAI
# 初始化大语言模型llm = ChatOpenAI(model_name="gpt-3.5-turbo", temperature=0)

这里的 temperature=0 表示模型尽量给出确定性答案,减少随机性。

六、构建 RAG 问答链

现在我们将检索模块和大模型结合,形成一个 检索增强问答链。

from langchain.chains import RetrievalQA
# 将数据库作为检索器retriever = db.as_retriever(search_kwargs={"k": 3})
# 构建 RAG 问答链qa = RetrievalQA.from_chain_type(    llm=llm,    retriever=retriever,    return_source_documents=True)
# 示例提问query = "请介绍一下本文档中的核心方法是什么?"result = qa({"query": query})
print("问题:", query)print("回答:", result["result"])print("引用文档:", result["source_documents"])

这一部分就是 RAG 的核心:先检索,再回答。模型不仅能给出答案,还能返回引用的文档片段,增强可解释性。

七、问答效果展示

我们可以进一步测试不同问题,观察 RAG 与普通 LLM 回答的区别。

# 提问 1query1 = "该方法在应用中解决了什么问题?"print("问题1:", query1)print("回答1:", qa({"query": query1})["result"])
# 提问 2query2 = "能否总结一下文档的主要内容?"print("问题2:", query2)print("回答2:", qa({"query": query2})["result"])

通过多轮问答,可以验证系统是否真正利用了外部知识库,而不是单纯依赖大模型的“想象力”。

八、总结

上面我们从零开始用了LangChain框架实现了RAG,整个流程包括:

1.文档加载与切分

2.向量化与数据库存储

3.检索器与大模型结合

4.构建端到端问答链

为了达到更好的效果,代码中可以替换为更强的开源 Embedding 模型(如 bge-large-zh),并且可以使用 Milvus、Weaviate 等更强大的数据库。

最后

为什么要学AI大模型

当下,⼈⼯智能市场迎来了爆发期,并逐渐进⼊以⼈⼯通⽤智能(AGI)为主导的新时代。企业纷纷官宣“ AI+ ”战略,为新兴技术⼈才创造丰富的就业机会,⼈才缺⼝将达 400 万!

DeepSeek问世以来,生成式AI和大模型技术爆发式增长,让很多岗位重新成了炙手可热的新星,岗位薪资远超很多后端岗位,在程序员中稳居前列。

在这里插入图片描述

与此同时AI与各行各业深度融合,飞速发展,成为炙手可热的新风口,企业非常需要了解AI、懂AI、会用AI的员工,纷纷开出高薪招聘AI大模型相关岗位。
在这里插入图片描述
最近很多程序员朋友都已经学习或者准备学习 AI 大模型,后台也经常会有小伙伴咨询学习路线和学习资料,我特别拜托北京清华大学学士和美国加州理工学院博士学位的鲁为民老师给大家这里给大家准备了一份涵盖了AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频 全系列的学习资料,这些学习资料不仅深入浅出,而且非常实用,让大家系统而高效地掌握AI大模型的各个知识点。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

AI大模型系统学习路线

在面对AI大模型开发领域的复杂与深入,精准学习显得尤为重要。一份系统的技术路线图,不仅能够帮助开发者清晰地了解从入门到精通所需掌握的知识点,还能提供一条高效、有序的学习路径。

img

但知道是一回事,做又是另一回事,初学者最常遇到的问题主要是理论知识缺乏、资源和工具的限制、模型理解和调试的复杂性,在这基础上,找到高质量的学习资源,不浪费时间、不走弯路,又是重中之重。

AI大模型入门到实战的视频教程+项目包

看视频学习是一种高效、直观、灵活且富有吸引力的学习方式,可以更直观地展示过程,能有效提升学习兴趣和理解力,是现在获取知识的重要途径

在这里插入图片描述
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述

海量AI大模型必读的经典书籍(PDF)

阅读AI大模型经典书籍可以帮助读者提高技术水平,开拓视野,掌握核心技术,提高解决问题的能力,同时也可以借鉴他人的经验。对于想要深入学习AI大模型开发的读者来说,阅读经典书籍是非常有必要的。
在这里插入图片描述

600+AI大模型报告(实时更新)

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

AI大模型面试真题+答案解析

我们学习AI大模型必然是想找到高薪的工作,下面这些面试题都是总结当前最新、最热、最高频的面试题,并且每道题都有详细的答案,面试前刷完这套面试题资料,小小offer,不在话下
在这里插入图片描述

在这里插入图片描述

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐