深入浅出LangChain AI Agent智能体开发教程(九)—LangChain从0到1搭建知识库

前言

本系列分享前八篇分别讲述了

上篇文章分享了LangChain便捷接入MCP的完整实现流程。当今大模型应用领域能和Agent开发平起平坐的应用形式当属RAG检索增强生成知识库系统。RAG知识库系统可以将私有知识(例如私有文档等)存储在数据库中,为大模型提供关键的上下文逻辑支持,确保大模型回答准确,是大模型减少“幻觉”的关键。RAG技术被广泛应用于智能客服问答、企业信息处理等各个关键领域。作为Agent应用开发的“扛把子”,LangChain对RAG开发也提供了良好的支持。本期内容笔者将手把手分享如何利用LangChain从0到1开发小型PDF RAG系统。阅读本篇文章前希望大家已经了解RAG的基础概念,不太了解的读者可以阅读笔者的RAG技术专栏,掌握RAG的基本执行流程。

本系列分享是笔者结合自己学习工作中使用LangChain&LangGraph经验倾心编写,力求帮助大家体系化快速掌握LangChain&LangGraph AI Agent智能体开发的技能!大家感兴趣可以关注笔者优快云账号和系列专栏。更可关注笔者同名微信公众号: 大模型真好玩, 每期分享涉及的代码均可在公众号私信: LangChain智能体开发获得。

一、环境搭建

本期实战内容我们会通过Streamlit前端界面,结合LangChain框架与DashScope向量嵌入服务,实现一个轻量化的RAG智能问答系统。该系统支持上传多个PDF文档,系统将自动完成文本提取、分块、向量化,并构建基于FAISS的检索数据库。用户可以在前端页面输入任意问题,系统会调用DeepSeek-Chat模型对PDF进行语义理解和回答生成。

项目的第一步还是要安装我们所需环境,在之前创建的anaconda虚拟环境langchainenv中执行如下命令安装相关依赖:

pip install streamlit PyPDF2 dashscope faiss-cpu

在这里插入图片描述

二、LangChain知识库智能体核心逻辑

  1. 引入相关依赖,编写如下代码。不借助库从0到1搭建RAG需要大量的代码和开发时长,LangChain的出现大大降低了智能体RAG系统的开发难度。可以看到LangChain对RAG系统的文本分块分块向量存储向量检索大模型生成等基本环节都作了成熟的封装,用户只需设计组织逻辑并调用相应的api即可快速完成RAG系统开发。 创建langchain搭建pdf解析rag系统.py文件并写入如下代码:
import streamlit as st #用来快速构建前端页面
from PyPDF2 import PdfReader # PDF文档读取、处理的依赖库
from langchain.text_splitter import RecursiveCharacterTextSplitter # LangChain封装的文档切分库
from langchain_core.prompts import ChatPromptTemplate # LangChain提示词模板组件
from langchain_community.vectorstores import FAISS # LangChain使用FAISS向量数据库保存切分后短文档的文本块向量
from langchain.tools.retriever import create_retriever_tool #RAG中的R,把RAG系统中的检索功能封装成工具,提供检索文本块向量功能
from langchain.agents import AgentExecutor, create_tool_calling_agent #LangChain中高层封装的Agent
from langchain_community.embeddings import DashScopeEmbeddings #调用阿里云百炼平台的Embedding模型
from langchain.chat_models import init_chat_model # LangChain封装大模型组件
  1. 设置向量模型和大语言模型,向量模型使用了阿里云百炼提供的text-embedding-v1模型,使用前需要注册阿里百炼的api_key。大语言模型使用DeepSeek-V3.1模型,也需要申请深度求索的api_key。申请api_key的详细操作大家可以参考我的文章【最新整理】全网免费接入DeepSeek-R1平台清单,包含网站和API使用(建议收藏)
# 初始化向量模型
embeddings = DashScopeEmbeddings(
    model="text-embedding-v1",
    dashscope_api_key='你在阿里云百炼注册的api_key'
)

#初始化大语言模型
llm = init_chat_model(
    model='deepseek-chat',
    model_provider="deepseek",
    api_key='你在DeepSeek官网注册的api_key'
)
  1. 利用PDFReader读取上传的PDF文档内容并将其切分成文本块。每个文本块包含1000个词,相邻两个文本块之间有200个词重合。
#读取pdf上传的内容
def pdf_read(pdf_doc):
    text = ""
    for pdf in pdf_doc:
        pdf_reader = PdfReader(pdf)
在信息爆炸的时代,每个企业都坐拥大量文档、报告、手册等非结构化数据,却常常陷入“知识就在那里,但就是找不到”的困境。传统的关键词搜索如同在迷雾中摸索,而早期基于规则的聊天机器人则显得僵硬笨拙。直到检索增强生成(RAG)技术的出现,配合LangChain这一强大框架,我们终于能够构建真正理解内容、给出精准回答的AI知识库。本文将带您踏上一场从零开始的实战之旅,完整揭示如何利用LangChain+RAG技术栈,让沉默的数据开口说话。 RAG+LangChainAI知识库的黄金搭档 RAG(Retrieval-Augmented Generation)的核心思想极为巧妙——它将传统的信息检索与现代的大语言模型生成能力相结合。当用户提出问题时,系统首先从知识库中检索相关文档片段,然后将这些片段与原始问题一起喂给大语言模型,最终生成基于事实的、来源可追溯的答案。这种方法既弥补了大模型内部知识可能过时或不准确的缺陷,又避免了传统搜索仅返回片段而缺乏综合回答的不足。 而LangChain,作为当前最流行的LLM应用开发框架,恰恰为RAG的实现提供了全链路工具。从文档加载、文本分割、向量嵌入,到检索器构建、提示工程和对话链设计,LangChain如同一条流水线,将各个组件有机串联。它支持多种文件格式(PDF、Word、Markdown等),兼容主流向量数据库(Chroma、Pinecone等),并提供灵活的链式调用机制,让开发者能专注于业务逻辑而非底层实现。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大模型真好玩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值