惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The GitHub Blog
The GitHub Blog
IT之家
IT之家
B
Blog RSS Feed
罗磊的独立博客
GbyAI
GbyAI
博客园 - Franky
Y
Y Combinator Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Google DeepMind News
Google DeepMind News
博客园 - 聂微东
N
Netflix TechBlog - Medium
博客园 - 三生石上(FineUI控件)
人人都是产品经理
人人都是产品经理
U
Unit 42
博客园 - 叶小钗
Jina AI
Jina AI
MyScale Blog
MyScale Blog
雷峰网
雷峰网
B
Blog
Hugging Face - Blog
Hugging Face - Blog
Blog — PlanetScale
Blog — PlanetScale
Recent Announcements
Recent Announcements
腾讯CDC
酷 壳 – CoolShell
酷 壳 – CoolShell

博客园 - aqi00

一文读懂 HarmonyOS 7.0 带来的十大API重要升级 鸿蒙版本的JSBridge兼容与安卓配套的H5啦 15天学会AI应用开发(十九)使用LangGraph实现持久记忆功能 鸿蒙版本的小小机器人APP开放源码啦 15天学会AI应用开发(十八)使用LangGraph实现精确记忆功能 15天学会AI应用开发(十七)使用LangGraph实现会话记忆功能 15天学会AI应用开发(十六)LangChain实现对话记忆功能 15天学会AI应用开发(十五)使用LangChain封装AI执行链 15天学会AI应用开发(十四)搭建LangChain的开发环境 15天学会AI应用开发(十三)上下文与RAG的阶段性总结 15天学会AI应用开发(十二)从PDF、WORD、网页构建RAG 15天学会AI应用开发(十一)从TXT文件构建RAG知识库 15天学会AI应用开发(十)把文本嵌入模型换成国产模型 15天学会AI应用开发(九)利用Chroma持久化向量数据 15天学会AI应用开发(八)使用向量数据库实现RAG功能 15天学会AI应用开发(七)有了大模型为什么还要引入RAG 15天学会AI应用开发(六)使用离线大模型对文本生成摘要 一文速览 HarmonyOS 6.1.1 推出的十个新特性 15天学会AI应用开发(五)使用AI摘要来压缩上下文消息 15天学会AI应用开发(四)根据Token长度截断历史对话 15天学会AI应用开发(三)把历史对话作为提示词会怎样 15天学会AI应用开发(二)为什么编写提示词这么重要 15天学会AI应用开发(一)搭建AI大模型应用开发环境 一文理清 HarmonyOS 6.0.2 涵盖的十个升级点 FFmpeg开发笔记(一百零二)国产的音视频移动开源工具FFmpegAndroid FFmpeg开发笔记(一百零一)跨平台的开源音视频移动框架MobileFFmpeg 一文速览 HarmonyOS 6.0.1 引入的十个新特性 一文读懂 HarmonyOS 6.1 带来的十大重要升级 新书《鸿蒙HarmonyOS 6应用开发:从零基础到App上线》出版啦 FFmpeg开发笔记(一百)国产的Android开源视频压缩工具VideoSlimmer
15天学会AI应用开发(二十)使用LangChain实现RAG检索功能
aqi00 · 2026-08-09 · via 博客园 - aqi00

之前的文章《15天学会AI应用开发(十三)上下文与RAG的阶段性总结》概述了检索RAG知识库的主要步骤,现在采用LangChain将其改造为更智能的本地RAG系统。

接下来基于LangChain框架与Chroma向量数据库,结合离线的文本嵌入模型和大语言模型,从零开始搭建本地的RAG检索系统。

一、下载RAG需要的离线大模型

首先下载离线的大语言模型,比如在命令行窗口执行下面命令,即可下载国产大模型qwen2:1.5b:

接着下载构建向量数据库需要的文本嵌入模型,比如在命令行窗口执行下面命令,即可下载国产嵌入大模型bge-m3:

等待两个大模型下载完毕,在命令行窗口执行下面命令,即可启动Ollama并加载离线大模型:

二、安装RAG需要的LangChain包

使用LangChain实现RAG检索功能用到了多个LangChain包,下面分别说明需要安装的LangChain包及其用途。

首先在命令行窗口执行下面命令,即可安装LangChain及其用到的Ollama插件:

其次执行下面命令安装Splitters插件,用于对文档内容切分文本块:

再次执行下面命令安装Chroma插件,用于让LangChain操作向量数据库Chroma:

还要执行下面命令安装LangChain的社区包,用于引入PyPDFLoader以便加载PDF文档:

三、编写RAG的检索实现代码

基于LangChain与Chroma实现RAG功能的时候,主要经过四个步骤:解析PDF文档、创建RAG检索器、构建提示词模板、启动RAG链执行问答操作,依次说明如下:

1、解析PDF文档

首先准备好待解析的PDF文档比如test.pdf放在python工程目录下,接着使用PyPDFLoader加载PDF文档,再引入RecursiveCharacterTextSplitter切分文本块。
对应的Python代码及其导包语句如下:

2、创建RAG检索器

首先使用OllamaEmbeddings加载离线的文本嵌入模型bge-m3,接着引入Chroma从文档内容构建向量数据库,注意数据库文件保存在persist_directory参数指定的chroma_db目录;然后调用数据库实例的as_retriever方法创建RAG检索器,该方法的search_kwargs结构可指定最多引用几个文档块。
对应的Python代码及其导包语句如下:

3、构建提示词模板

首先编写字符串形式的提示词内容,说清楚要让AI做什么事、返回什么样的回答,关键要说明上下文来自context字段,且用户问题来自question字段。然后调用PromptTemplate的from_template方法从提示词文字构建提示词模板。
对应的Python代码及其导包语句如下:

4、启动RAG链执行问答操作

首先使用ChatOllama加载离线的大语言模型qwen2:1.5b,接着封装RAG执行链,注意输入第三步提示词要求的context和question两个参数,其中context字段依次输入第二步的RAG检索器和拼接文档需要的format_docs函数。然后调用RAG执行链的invoke方法,根据输入的问题获取RAG检索返回的答案。
对应的Python代码及其导包语句如下:

运行上面整合后的Python代码,根据提示输入问题内容“公共收益是什么?”,输出日志结果如下:

由日志信息发现,AI应用能够返回PDF文档中的正确答案。可见引入Chroma向量数据库之后,LangChain成功实现了来自PDF文档的RAG知识检索功能。

 本系列的AI应用开发文章目录为《15天学会AI应用开发全目录(零基础小白,零Token消耗)》。