[特殊字符] LangChain Day1:核心架构与组件(第一课)
LangChain 是一个,专门解决 “如何基于大模型快速搭建业务应用” 的问题。
·
难度:⭐☆☆☆☆ | 重要度:★★★★★ | 预计时长:30 分钟
一、LangChain 到底是什么?(核心定位)
LangChain 是一个大模型应用开发框架,专门解决 “如何基于大模型快速搭建业务应用” 的问题。
- 核心价值:封装了大模型开发的通用能力,让你不用重复造轮子,专注业务逻辑
- 适用场景:RAG 检索增强、智能对话机器人、Agent 代理、工具调用等
- 优势:跨模型兼容、组件化设计、生态丰富、社区活跃
二、LangChain 核心架构(4 大模块)
LangChain 的架构遵循模块化、可组合的设计,所有应用都由这 4 个核心模块搭建而成:
1. Models(模型层)
负责对接不同的大模型服务,提供统一的调用接口,是整个框架的 “大脑”。
- 分类:
LLM:文本补全模型(如 GPT-3.5-turbo-instruct、text-davinci-003)ChatModels:对话模型(如 GPT-3.5/4、通义千问、文心一言)Embeddings:嵌入模型(用于文本向量化,是 RAG 的核心)
- 特点:同一套代码,无缝切换不同模型,业务代码不用改
2. Prompts(提示词层)
负责管理、构建和优化提示词,解决 “提示词硬编码、多场景复用” 的问题。
- 核心组件:
PromptTemplate:通用提示词模板,支持变量占位符({变量名})ChatPromptTemplate:对话专用模板,支持系统消息、用户消息、AI 消息的拼接FewShotPromptTemplate:少样本提示词模板,可快速构建示例驱动的提示词
- 价值:提示词与业务代码解耦,支持动态拼接、版本管理
3. Chains(链层)
负责将多个组件串联成完整的业务流程,实现 “模型 + 提示词 + 工具” 的流水线执行。
- 核心逻辑:把 “模型调用、提示词生成、工具调用、数据处理” 等步骤,按顺序串成一条链,一步执行
- 常用链:
LLMChain:最基础的链,模型 + 提示词模板的组合SequentialChain:顺序链,多个链按顺序执行,前一个链的输出作为后一个链的输入RetrievalQAChain:RAG 专用链,实现 “检索 + 问答” 的完整流程
4. Agents(代理层)
负责让大模型具备 “自主决策、工具调用、任务拆解” 的能力,是 LangChain 最强大的模块之一。
- 核心组件:
Agent:决策主体,根据用户输入判断下一步该做什么Tools:工具集合,给大模型调用的能力(如搜索引擎、计算器、数据库查询)Toolkits:工具包,封装了特定场景的工具集合(如数据库工具包、GitHub 工具包)Executor:代理执行器,负责执行 Agent 的决策,循环直到任务完成
- 价值:让大模型从 “只会生成文本” 升级为 “能解决复杂多步骤任务” 的智能体
三、LangChain 常用组件一览(面试高频)
表格
| 组件 | 核心作用 | 典型应用场景 |
|---|---|---|
Document |
文档对象,封装文本内容和元数据 | 文档加载、文本分割 |
DocumentLoader |
文档加载器,从不同来源加载文档 | 加载 PDF、Word、网页、数据库数据 |
TextSplitter |
文本分割器,将长文本拆分成小块 | 解决大模型上下文窗口限制 |
VectorStore |
向量数据库接口,提供统一的存储 / 检索方法 | RAG 知识库构建 |
Retriever |
检索器,从向量库中召回相关文档 | RAG 问答的召回环节 |
Callbacks |
回调函数,监听链 / 代理的执行过程 | 日志记录、监控、调试 |
Memory |
记忆模块,存储对话历史 | 多轮对话机器人 |
四、基础代码示例(可直接运行)
python
运行
# 1. 安装依赖
# pip install langchain langchain-openai python-dotenv
from langchain_core.prompts import ChatPromptTemplate
from langchain_openai import ChatOpenAI
from langchain_core.output_parsers import StrOutputParser
from dotenv import load_dotenv
import os
# 2. 加载环境变量(你的OpenAI Key)
load_dotenv()
llm = ChatOpenAI(model="gpt-3.5-turbo", api_key=os.getenv("OPENAI_API_KEY"))
# 3. 构建提示词模板
prompt = ChatPromptTemplate.from_messages([
("system", "你是一个专业的前端开发专家,擅长用通俗的语言解释技术问题。"),
("user", "请解释一下:{question}")
])
# 4. 构建链(模板 → 模型 → 输出解析器)
chain = prompt | llm | StrOutputParser()
# 5. 执行链
response = chain.invoke({"question": "什么是Vue3的组合式API?"})
print(response)
📝 随堂小测(5 题,检验学习效果)
-
(单选题)以下哪个不是 LangChain 的核心模块?( )A. Models B. Prompts C. Chains D. Database E. Agents
-
(判断题)LangChain 只能对接 OpenAI 的大模型,不能使用国内模型(如通义千问)。( )
-
(填空题)LangChain 中用于文本向量化、构建 RAG 知识库的模型类型是 ______。
-
(简答题)简述
Chain在 LangChain 中的核心作用。 -
(代码题)请补全下面的代码,实现一个基础的 LLMChain,接收用户输入的主题,生成一段 50 字以内的简介。
python
运行
from langchain_core.prompts import PromptTemplate from langchain_openai import ChatOpenAI from langchain.chains import LLMChain llm = ChatOpenAI(model="gpt-3.5-turbo") prompt = PromptTemplate( input_variables=["topic"], template="请用50字以内介绍一下:{topic}" ) # 补全代码,构建并执行 LLMChain
更多推荐


所有评论(0)