LangChain 入门与实战:大模型应用开发框架详解(附百炼 API 对接示例)
一、LangChain 是什么?
1.1 核心概念
LangChain 是一款专为构建基于大语言模型(LLM)的应用程序而设计的开源框架。你可以把它理解为「大模型应用开发工具箱」—— 它把和大模型交互、处理数据、连接外部工具的各种能力封装成模块化组件,开发者无需从零写所有代码,借助 LangChain 就能快速搭建复杂的 AI 应用。
它提供了预构建的代理架构和模型集成,能无缝将 LLM 融入智能体或大模型应用中。借助 LangChain,你甚至可以用不到 10 行代码,就连接并使用 OpenAI、Anthropic、Google 等主流大语言模型。
1.2 核心价值:打破 LLM 的能力边界
原生大语言模型(LLM)只能完成简单的问答、生成任务,而 LangChain 通过模块化设计和可组合性,让开发者轻松整合 LLM 与外部数据、工具、知识库,构建具备复杂逻辑、上下文感知、多步推理能力的 AI 应用,例如:
- 智能客服、代码生成助手
- 企业知识库问答系统
- 自主智能体(AI Agent)
如果把 LLM 比作汽车的发动机,那么 LangChain 就是完整的汽车底盘 + 传动系统 + 控制系统 —— 它让 “发动机” 能适配不同的 “车身”(应用场景),实现更复杂的 “行驶功能”(业务逻辑)。
1.3 开发语言与应用场景
LangChain 支持 Python 和 JavaScript/TypeScript 双语言开发,生态丰富,兼容主流大语言模型(OpenAI、Anthropic、Google Gemini、开源的 Llama/GLM 等),是当前 LLM 应用开发的主流框架之一。
常见应用场景:

二、LangChain 核心组件全景解析
LangChain 框架的架构遵循 “模块化设计”,每个模块解决特定场景的问题,且模块间可灵活组合。其核心组件分为以下几类:
2.1 基础框架层:LangChain(核心内核)
作为智能体系统的 “操作系统内核”,LangChain 提供统一模型接口与模块化开发基础,包含以下关键能力:
- 模型抽象:用统一接口连接 OpenAI、Anthropic 等 100 + 模型供应商,屏蔽底层差异。
- 提示词工程:模板化管理与优化,提升输出质量。
- 工具集成:支持 API、数据库、向量存储等数百种外部服务。
- 记忆管理:提供多种记忆策略,解决 LLM 无状态性问题。
文档地址:https://docs.langchain.com/oss/python/langchain/overview
2.2 多智能体编排:LangGraph
LangGraph 是运行时编排引擎,用于实现复杂状态管理与任务流控制:
- 图结构建模:用有向图表示智能体系统,支持条件分支、循环和状态持久化。
- 多智能体协作:让多个 Agent 协同完成复杂任务(如 “研究→分析→报告” 流程)。
- 可视化调试:直观呈现执行路径,便于问题定位。
文档地址:https://docs.langchain.com/oss/python/langgraph/overview
2.3 智能体外骨骼:Deep Agents
专注长周期复杂任务处理:
- 任务规划:将长任务分解为子目标,制定执行策略。
- 虚拟文件系统:高效管理大输出,减少 token 消耗。
- 子智能体委托:动态创建子 Agent 处理专项任务,提升效率。
文档地址:https://docs.langchain.com/oss/python/deepagents/overview
2.4 部署服务:LangServe
将智能体转化为生产级 REST/gRPC API 的部署平台:
- 支持流式输出、批处理和异步调用。
- 兼容 FastAPI 生态,便于扩展。
- 一键部署,自动生成 Swagger/OpenAPI 文档。
文档地址:https://github.com/langchain-ai/langserve
2.5 监控平台:LangSmith
统一的可观测性与质量评估中心:
- 全链路追踪:可视化 LLM 调用、工具使用和状态变化。
- 评估与测试:提供自动和人工评测机制。
- 性能监控:分析响应时间、token 使用和错误率。
文档地址:https://docs.langchain.com/langsmith/home
三、LangChain 核心模块详解
3.1 模型输入 / 输出(Models)
Models 是 LangChain 的核心层,负责与各类 LLM / 嵌入模型(Embedding Model)交互,包含以下子模块:
3.1.1 LLMs 与 Chat Models
- LLMs:对接大语言模型的基础接口,统一不同厂商的 API 调用方式。
- Chat Models:针对对话式 LLM(如 GPT-3.5/4 Turbo、Claude Chat)的专用接口,支持结构化对话消息(用户消息、助手消息、系统消息)。
3.1.2 Embeddings
对接文本嵌入模型(如 OpenAI Embedding、BERT、智谱 AI 嵌入模型),将文本转换为向量表示,是知识库问答、文本检索的基础。
3.1.3 实战示例:对接阿里云百炼 API
下面是 LangChain 封装阿里云百炼大模型(qwen-plus)的完整代码示例:
from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage, SystemMessage
import os
from dotenv import load_dotenv
# 加载环境变量(从 .env 文件读取 API Key)
load_dotenv()
# 1. 初始化对话模型(对接阿里云百炼)
chat_model = ChatOpenAI(
model="qwen-plus",
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
temperature=0.7 # 生成随机性(0-1之间,值越大越随机)
)
# 2. 构造对话消息并调用模型
messages = [
SystemMessage(content="你是一个专业的Python编程助手,回答简洁易懂;"),
HumanMessage(content="请解释什么是装饰器?")
]
response = chat_model.invoke(messages)
print("模型回复:", response.content)
# 3. 嵌入模型示例(需替换为百炼支持的嵌入模型)
# from langchain_openai import OpenAIEmbeddings
# embeddings = OpenAIEmbeddings(
# api_key=os.getenv("DASHSCOPE_API_KEY"),
# base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
# )
# text = "LangChain是LLM应用开发框架"
# vector = embeddings.embed_query(text)
# print(f"向量长度:{len(vector)}")
说明:
- 百炼模型列表参考:https://help.aliyun.com/zh/model-studio/getting-started/models
- 需提前安装依赖:
pip install langchain langchain-openai python-dotenv
参考文档:https://docs.langchain.com/oss/python/langchain/models
3.2 提示词模板(Prompts)
提示词是 LLM 应用的核心,但手写提示词易出错、难复用。LangChain 的 Prompts 模块提供以下功能:
- Prompt Templates:提示词模板,支持参数化填充(例如定义 “代码解释模板”,只需替换 “代码片段” 参数即可复用)。
- Chat Prompt Templates:针对对话模型的提示词模板,适配多轮对话场景。
- Output Parsers:将 LLM 的文本输出解析为结构化数据(如 JSON、字典、类对象),解决 “LLM 输出不可控” 的问题。
参考文档:
- 消息模板:https://docs.langchain.com/oss/python/langchain/messages
- 结构化输出:https://docs.langchain.com/oss/python/langchain/structured-output
3.3 索引(Indexes)
当 LLM 需要处理外部文档(如 PDF、Word、知识库)时,Indexes 模块负责将文档转换为 “可检索” 的格式,核心流程是:
- 加载文档(Load):通过 DocumentLoaders 加载 PDF、TXT、网页、Excel 等格式文件。
- 分割文本(Split):将长文档分割为短文本块(避免超出 LLM 上下文窗口)。
- 嵌入文本(Embed):将文本块转换为向量。
- 存储向量(Store):将文本向量存入向量数据库(如 Chroma、Pinecone、Milvus)。
- 检索文本(Retrieve):根据用户问题检索相关文本块。
3.4 链(Chains)
Chains 是 LangChain 的 “灵魂”,它允许将多个组件(LLM、Prompt、检索器等)组合成一个可执行的流程,解决 “单步操作无法完成复杂任务” 的问题。常见的 Chain 类型:
- LLMChain:最基础的链,将 Prompt Template + LLM 组合,实现 “输入参数→生成提示词→调用 LLM→输出结果”。
- RetrievalQAChain:检索增强生成(RAG)的核心链,组合 “检索器 + LLM”,实现 “用户提问→检索相关文档→将文档和问题传入 LLM→生成基于文档的回答”。
- SequentialChain:串行链,将多个 Chain 按顺序执行,前一个 Chain 的输出作为后一个的输入。
3.5 记忆(Memory)
原生 LLM 没有 “记忆”,无法记住多轮对话的上下文。Memory 模块解决这个问题,核心类型如下:
- ConversationBufferMemory:简单缓存所有对话历史。
- ConversationSummaryMemory:对对话历史进行总结,避免上下文过长。
- ConversationTokenBufferMemory:按 Token 数限制缓存对话历史,适配 LLM 的上下文窗口。
参考文档:https://docs.langchain.com/oss/python/concepts/memory
3.6 代理(Agents)
Agents 是 LangChain 的高阶能力,让 LLM 能 “自主决策”—— 根据用户问题选择调用哪些工具(如计算器、搜索引擎、代码解释器),完成多步推理任务:
- Agent:决策核心,负责判断 “该调用哪个工具”“是否需要继续调用工具”。
- Tool:工具接口,LangChain 内置多种工具(Calculator、SerpAPI、PythonREPL 等),也支持自定义工具。
- Executor:执行器,负责执行 Agent 的决策,调用工具并返回结果。
参考文档:https://docs.langchain.com/oss/python/langchain/agents
3.7 工具(Tools)
Tools 模块是 Agents 的基础,提供与外部系统交互的接口,LangChain 内置工具包括:
- 计算类:
Calculator、PythonREPL - 检索类:
SerpAPI(谷歌搜索)、DuckDuckGoSearch - 文件类:
FileBrowser、CSVLoader - API 类:
RequestsTool(调用 HTTP 接口)
开发者也可通过 @tool 装饰器快速自定义工具:
from langchain.tools import tool
@tool
def calculator(expression: str) -> str:
"""计算数学表达式,例如:"2 + 3 * 4" """
try:
return str(eval(expression))
except Exception as e:
return f"计算错误:{str(e)}"
3.8 文档加载器(Document Loaders)
负责加载外部文档,支持几乎所有主流格式:
- 文本类:TXT、Markdown、JSON
- 办公类:PDF、Word、Excel、PPT
- 网页类:URL、HTML、Sitemap
- 数据库类:MySQL、PostgreSQL、MongoDB
- 其他:Notion、Confluence、GitHub
参考文档:https://docs.langchain.com/oss/python/langchain/knowledge-base#1-documents-and-document-loaders
3.9 评估(Evaluation)
LLM 应用的效果难以量化,Evaluation 模块提供评估工具,支持:
- 手动评估:人工打分
- 自动评估:用 LLM 自身评估回答质量
- 基准测试:对比不同模型 / 链的效果
参考文档:https://docs.langchain.com/langsmith/evaluation-quickstart#evaluation-quickstart
四、LangChain 学习路径建议
4.1 入门阶段
先掌握 Models、Prompts、LLMChain 三个核心模块,实现简单的文本生成、问答功能。
4.2 进阶阶段
学习 Indexes、Memory、RetrievalQAChain,搭建基础的 RAG 知识库问答系统。
4.3 高阶阶段
学习 Agents、Tools,构建具备自主决策能力的 AI Agent。
4.4 工程化阶段
结合 LangSmith 调试、LangServe 部署,实现生产级应用。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐
所有评论(0)