LangChain 新手入门与环境搭建指南
目录
大语言模型(如 ChatGPT、Claude、DeepSeek)的快速发展,使得开发者不仅希望使用这些模型,更希望将其灵活集成到自己的应用中 。本文将为您系统地拆解 LangChain 的核心概念、架构设计以及从零开始的环境搭建流程。
一、为什么我们需要 LangChain?
在不使用框架的情况下,直接调用大模型的 API 虽然可行,但在实际开发中会面临显著的痛点 。
如果直接使用 API,开发者需要亲力亲为处理以下事项:
-
自己管理对话状态、拼接消息列表并控制 token 上限以保持上下文记忆 。
-
自己搭建向量数据库、编写检索逻辑并处理文档切分,以实现私有数据访问(RAG) 。
-
自己定义函数 schema、解析模型返回的 JSON 并处理异常,以让模型调用外部工具 。
-
自己编写循环、状态机和重试逻辑,从零搭建 Agent 架构来实现复杂任务的分步执行 。
-
在更换模型(例如从 OpenAI 换到 Claude)时,几乎需要重写接口、参数和解析逻辑 。
这些工作使得开发者往往会将 80% 的时间花费在“重复造轮子”上,而不是专注于业务逻辑本身 。LangChain 的核心价值在于提供了现成的标准化组件(如对话管理、RAG 流程),统一了接口以便随时更换模型,并拥有丰富的生态集成(70+ 模型提供商、100+ 工具等) 。
简而言之,LangChain 让开发者把精力从“怎么调 API”转移到“怎么做产品”上 。
二、LangChain 是什么?
LangChain 是由哈佛大学的 Harrison Chase 于 2022 年 10 月发起研发的开源框架,用于开发由大语言模型驱动的应用程序 。它的发布比 ChatGPT 问世(2022 年 11 月)还要早一个月 。通过不到 10 行代码,开发者即可连接 OpenAI、Anthropic、Google 等多种模型,并快速将 LLM 集成到 Agent 和应用中 。
宏观生态:LangChain 的三层架构
LangChain 并非一个孤立的库,其背后是一个层层递进的三层架构生态 :
-
Deep Agents(套件):建立在 LangChain 之上,开箱即用,内置最佳实践,适合信任 LLM 自主决策的场景 。就像一辆“给目的地就出发”的自动驾驶汽车 。
-
LangChain(框架):提供标准化抽象层,允许自由组装组件,适合自定义 Agent 或 RAG 等通用开发 。相当于“自己组装零件开车” 。
-
LangGraph(运行时):建立在底层,用“图”精确控制每一步流程,控制力最强,适合需要确定性流程的企业级编排 。相当于“自己造引擎、画电路” 。
三、LangChain 核心架构总览
在深入代码之前,需要理解 LangChain 内部的模块划分。整个架构分为三个层次:
1. 基础层(用什么说话)
这一层定义了 LangChain 与模型之间的通信协议,是上层功能的地基 。
-
Messages:标准化消息格式,如 SystemMessage、HumanMessage、AIMessage 等 。
-
Prompts:提示词模板,支持变量插入和复用 。
-
Streaming:实时流式输出,逐 token 返回结果 。
-
Middleware:在模型调用前后插入重试、缓存等逻辑 。
2. 能力层(怎么做)
这一层提供了模型之上的核心能力组件,每个组件可独立使用或自由组合 。
-
Models:统一的模型调用接口,所有模型均使用 invoke、batch 或 stream 方法 。
-
Tools:使用
@tool装饰器定义函数,使模型具备调用外部 API 的能力 。 -
Memory:管理对话历史,包括短期、长期和摘要记忆 。
-
Structured Output:利用 Pydantic 模型约束输出格式,确保返回标准的 JSON 。
3. 应用层(做什么)
这一层是面向业务场景的顶层模块,负责组合底层能力来解决实际问题 。
-
Chains:通过管道符(如
prompt | llm | parser)将多个组件串联成流水线 。 -
Retrieval (RAG):覆盖文档加载、文本切分、向量存储到检索的增强生成全链路 。
-
Agents:自主规划执行步骤,循环调用工具直至任务完成 。
四、环境准备与包管理
在 Python 开发中,解决环境隔离和包安装是首要任务 。本教程推荐并统一使用 uv,不再依赖 conda、pip 或 venv 。
为什么选择 uv?
相比于传统的 venv + pip 组合或体积庞大的 conda,uv 是由 Rust 编写的新一代工具 。
-
它在安装包的速度上比 pip 快 10-100 倍 。
-
它能直接管理 Python 版本并自动创建虚拟环境 。
-
它使用
uv.lock进行精确依赖锁定,保证了环境的可复现性 。
认识项目核心文件
在使用 uv 初始化项目后,会生成以下关键结构:
-
pyproject.toml:类似“购物清单”,记录项目配置以及你手动要求安装的依赖清单(如langchain >=1.2.15) 。 -
uv.lock:类似“收银小票”,由 uv 自动生成,记录每个包及其间接依赖的精确版本,确保他人可以通过uv sync一键还原相同环境 。 -
.venv/:类似“冰箱”,是由 uv 自动创建的虚拟环境,存放实际安装的包,不需要提交到 Git 。
LangChain 按需安装策略
LangChain 采用模块化包结构,避免提供臃肿的单一包,应当遵循“只安装用到包”的原则 。
-
langchain与langchain-core为核心包 。 -
集成包按需安装,例如
langchain-openai、langchain-anthropic或本地模型的langchain-ollama。 -
扩展包如
langchain-chroma(向量数据库)等 。
初始化项目实操
# 1. 创建项目目录
mkdir langchain-course && cd langchain-course
# 2. 用 uv 初始化项目 (自动创建虚拟环境 + pyproject.toml)
uv init
# 3. 指定 Python 版本 (推荐3.12)
uv python pin 3.12
# 4. 安装 LangChain 核心包 (自动写入 pyproject.toml 和 uv.lock)
uv add langchain
# 5. 安装你需要的模型提供商集成 (如 OpenAI 和环境变量加载工具)
uv add langchain-openai
uv add python-dotenv
注:使用 uv add 可以自动记录依赖关系并生成锁文件,比 uv pip install 更利于团队协作 。
五、模型平台选择与环境变量配置
LangChain 的优势在于其模型无关性,切换模型通常只需更改一行配置,前提是正确配置 API 。
主流大模型平台推荐
-
海外官方平台:如 OpenAI (GPT系列) 或 Anthropic (Claude系列),提供最低延迟和最稳定的服务,但需要科学上网与海外信用卡支持 。
-
代理/中转平台:如 CloseAI 或 OpenRouter,提供完全兼容官方的 API,只需替换
base_url,适合国内网络且支持支付宝 。 -
国产模型平台:如 DeepSeek、阿里云百炼 (Qwen)、智谱 AI (GLM),提供直连服务,性价比高,部分提供免费额度 。
环境变量配置
在实际项目中,推荐在项目根目录创建 .env 文件来管理密钥 。
-
创建
.env文件(以 OpenAI 与 CloseAI 代理为例):
OPENAI_API_KEY=sk-your-api-key
OPENAI_BASE_URL=https://api.closeai-asia.com/v1
严谨提示:切勿将 .env 文件提交到版本控制系统中,以防数据泄露,应将其加入 .gitignore 。代码中依赖的是 python-dotenv 包,切勿错误安装为 dotenv 。
六、快速上手:你的第一个 LangChain 程序
当环境与密钥准备妥当,只需几行代码即可完成模型的调用:
import os
from dotenv import load_dotenv
from langchain_openai import ChatOpenAI
# 加载 .env 文件中的环境变量
load_dotenv()
# 创建模型实例
llm = ChatOpenAI(
model="gpt-4",
api_key=os.getenv("OPENAI_API_KEY"),
base_url=os.getenv("OPENAI_BASE_URL", "https://api.openai.com/v1")
)
# 调用模型进行对话
response = llm.invoke("你好,请用一句话介绍Python")
print(response.content)
以上便是从 0 到 1 搭建 LangChain 开发环境的最基础流程 。掌握基础的 Model I/O 后,便可以逐步深入学习 Chains 串联、Memory 记忆管理、Tools 工具调用,以及最终的 RAG 与 Agents 构建 。
更多推荐


所有评论(0)