Skip to content

12.LangGraph基于RAG构建智能客服应用 ​

来源:语雀原文 | 整理日期:2026-09-22

示例代码

注:将ppt后缀名改为zip后解压

python版本:3.10

AI 领域正从基础的 RAG 系统向更智能的 AI 智能体进化,后者能处理更复杂的任务并适应新信息。LangGraph 作为 LangChain 库的扩展,助力开发者构建具有状态管理和循环计算能力的先进 AI 系统。

LangGraph流程 ​

LangGraph 是 LangChain 的高级库,为大型语言模型(LLM)带来循环计算能力。它超越了 LangChain 的线性工作流,通过循环支持复杂的任务处理。

  • 状态:维护计算过程中的上下文,实现基于累积数据的动态决策。
  • 节点:代表计算步骤,执行特定任务,可定制以适应不同工作流。
  • 边:连接节点,定义计算流程,支持条件逻辑,实现复杂工作流。

image

LangGraph 简化了 AI 开发,自动管理状态,保持上下文,使 AI 能智能响应变化。它让开发者专注于创新,而非技术细节,同时确保应用程序的高性能和可靠性。

RAG流程 ​

image.png

一个典型的RAG应用有两个主要组成部分:

索引(Indexing):从数据源获取数据并建立索引的管道(pipeline)。这通常在离线状态下进行。

检索和生成(Retrieval and generation):实际的RAG链,在运行时接收用户查询,从索引中检索相关数据,然后将其传递给模型。

从原始数据到答案的最常见完整顺序如下:

索引(Indexing) ​

  1. 加载(Load):首先我们需要加载数据。这是通过文档加载器Document Loaders完成的。
  2. 分割(Split):文本分割器Text splitters将大型文档(Documents)分成更小的块(chunks)。这对于索引数据和将其传递给模型都很有用,因为大块数据更难搜索,而且不适合模型有限的上下文窗口。
  3. 存储(Store):我们需要一个地方来存储和索引我们的分割(splits),以便后续可以对其进行搜索。这通常使用向量存储VectorStore和嵌入模型Embeddings model来完成。

image

检索和生成(Retrieval and generation) ​

  1. 检索(Retrieve):给定用户输入,使用检索器Retriever从存储中检索相关的文本片段。
  2. 生成(Generate): ChatModel使用包含问题和检索到的数据的提示来生成答案。

image

LangGraph基于RAG构建智能客服 ​

客服界面 ​

image.png

运行环境 ​

建议使用 Python>=3.10

可参考如下命令进行环境创建

plain
conda create -n agent python=3.10 -y
conda activate agent

安装依赖 ​

plain
pip install -r requirements.txt

配置OpenAI 环境变量 ​

Windows 导入环境变量 ​

注意:每次执行完,需要重启PyCharm才能生效

powershell
setx OPENAI_BASE_URL "https://api.openai.com/v1"
setx OPENAI_API_KEY "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

Mac 导入环境变量 ​

bash
export OPENAI_BASE_URL='https://api.openai.com/v1'
export OPENAI_API_KEY='sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'

运行项目 ​

使用以下命令行运行webui

bash
streamlit run rag.py

验证效果 ​

如何查询账户余额?

image.png