LangChain 入门指南:从概念理解到环境搭建(新手友好)
LangChain 入门第一课:从零搭好环境,跑通你的第一个 AI 案例
这是 LangChain 系列的第一篇。这一章我们不追花哨功能,先把"最基础的开发闭环"走通:搞清楚 LangChain 是什么 → 理解它和 DeepSeek 的关系 → 装好 Python 环境 → 用代码真正调一次模型。跟着做,你很快就能跑出属于自己的第一个 LangChain 小程序。
一、本章你要带走什么?
读完并跟着敲一遍,你应该能够:
- 说清楚 LangChain 是什么
- 理解 LangChain、模型 API、DeepSeek 三者之间的关系
- 在自己的电脑上 搭建 Python 环境
- 用 DeepSeek 的 OpenAI 兼容接口 完成一次普通调用
- 用 LangChain 的
init_chat_model初始化 DeepSeek 模型 - 写出 第一个可运行的 LangChain 小案例
二、先认识"智能体":为什么需要 LangChain?
2.1 一次范式转移
2022 年底,ChatGPT 3.5 的出现把 AI 时代明显地分成了"前"和"后"。大模型展现出了前所未有的通用能力:它既能理解人类语言的复杂意图,又能跨领域融合知识、做推理,最后给出连贯又有见地的答案。可以说,我们终于有了一个随时能调用的"数字大脑"。
而当这个"大脑"被进一步赋予 感知环境、制定计划、执行任务 的能力后,一种全新的软件形态就诞生了——这就是 智能体(Agent)。
2.2 传统应用 vs 智能体
| 对比维度 | 传统应用 | 智能体 |
|---|---|---|
| 驱动模式 | 命令驱动 | 目标驱动 |
| 交互方式 | 固定界面、参数输入 | 自然语言、语义理解 |
| 执行逻辑 | 流程化、预定义 | 自主规划、多步推理 |
| 学习机制 | 静态算法 | 动态学习与记忆 |
| 系统角色 | 工具 | 合作伙伴 |
传统软件走的是 "输入 → 处理 → 输出" 的直线;智能体则运行在 "感知 → 决策 → 行动 → 记忆" 的持续循环里,不仅能做事,还能从结果中不断学习、优化下一步策略。
过去我们是"下命令的人",软件是"听话的工具";未来我们是"提目标的人",智能体是"一起把事办成的搭档"。

2.3 智能体的"五脏六腑"
要拆解一个智能体,核心就是四个能力模块:
- 👁 感知(Perception)——眼睛,理解外界发生了什么
- 🧠 决策(Reasoning)——大脑,规划接下来怎么做
- ✋ 行动(Action)——双手,真正去执行
- 💾 记忆(Memory)——灵魂,把经验存下来持续进化
这四者协同运转,智能体就不再是普通工具,而更像一个 会适应、有目标、能进化的"数字生命"。

💡 智能体是个"虚拟概念"——既可以是你自己写的,也可以直接用别人做好的。
三、LangChain 是什么?
3.1 一句话定位
LangChain 是目前最主流的"造智能体"框架(同类还有 Java 圈的 LangChain4J、SpringAI 等)。它站在 大模型 和 你的应用 中间,当一层"胶水":
- 连接大模型与应用:用统一接口,把模型和数据库、搜索引擎、API、文件系统等外部资源打通
- 封装复杂逻辑:把"调工具""记对话"这些麻烦事抽象好,你不必从零写
- 支持多智能体协作:借助 LangGraph 和 Deep Agent,已经从单智能体扩展到多智能体协作,甚至能搭出工业级智能体
3.2 它一路是怎么长大的?
LangChain 由工程师 Harrison Chase 于 2022 年底发布,最初只是用来更好地管理提示词。随着大模型爆发,它迅速成长为构建智能体的核心框架:
| 阶段 | 时间 | 关键标志 |
|---|---|---|
| 探索期 | 2022 Q4 – 2023 Q1 | 初版发布,主打 PromptTemplate、LLMChain,GitHub Star 快速破万 |
| 体系化 | 2023 Q2 – 2023 Q4 | 引入 Tool、Agent、Retrieval;推出 LangSmith,形成开发→调试→部署闭环 |
| 平台化 | 2024 – 2025 上半年 | LangGraph(编排)、LangServe(部署)发布,从框架升级为平台 |
| 深层智能体 | 2025 下半年起 | 推出 Deep Agent,支持多智能体复杂体系 |
截至 2025 年 11 月,LangChain 生态已形成三层技术栈:LangChain → LangGraph → Deep Agent,分别对应基础能力层、运行时编排层、智能体抽象层。
3.3 为什么首选 Python?
LangChain 同时支持 Python 和 JavaScript,但 Python 版功能最全、更新最快、社区最活跃——它既是 AI 领域的第一语言,也是本课程实操的唯一选择。
3.4 生态全家桶:四个部件怎么分工?
LangChain 生态 = LangChain(核心)+ LangGraph + Deep Agent + LangSmith
| 部件 | 角色 | 什么时候用 |
|---|---|---|
| LangChain | 打地基,最基础的开发能力 | 做个简单 AI 功能、小智能体 |
| LangGraph | 用"有向图"编排复杂流程 | 你要完全掌控每一步流转 |
| Deep Agent | 开箱即用的重型智能体框架 | 全自动复杂任务,懒得写底层 |
| LangSmith | 网站形式的可观测/质量管理平台 | 调试、追踪、看智能体跑得对不对 |
三者怎么选?
- 重活、全自动 → 用 Deep Agent(底层自动调用 LangChain + LangGraph)
- 简单线性功能 → 直接 LangChain,别折腾
- 流程要完全自定义 → 手写 LangGraph,LangChain 当底座
3.5 重点:LangChain 1.0 有啥不一样?
📌 只学 1.0 以后的版本,老的 0.x 了解一下即可。
在 1.0 之前,LangChain 被吐槽"又胖又乱"。1.0 相当于一次大瘦身:
- 更清爽:砍掉冗余接口、统一规范,学起来不绕了
- 换思路:从"链式拼接"升级为 "智能体优先"——在 LangGraph 之上封装了更易用的
create_agent/create_deep_agent。圈内才调侃:这哪是 LangChain 1.0,分明是 LangGraph 2.0 - 两大新武器:
- 中间件机制:像 Spring 的 AOP,能往流程里插日志、监控,还不污染业务代码
- Deep Agent:你不用懂底层,配好子智能体、文件路径、提示词、工具,就能拼出复杂智能体
结论:直接学 LangChain 1.0,别在旧版本里浪费时间。
四、为什么本课程用 DeepSeek?
课程全程用 DeepSeek 作演示模型,原因很实在:DeepSeek 的 API 兼容 OpenAI 格式。
官方地址:DeepSeek | 深度求索
这意味着很多支持 OpenAI 接口的 SDK / 框架,只要替换三样东西就能调用 DeepSeek:
- API Key
- base URL
- model 名称
本课程用到的 base URL 与模型:
# DeepSeek 官方 OpenAI 兼容 base URL https://api.deepseek.com # 本课程主要使用的模型 deepseek-v4-flash
五、OpenAI 兼容 API 是什么?
很多大模型服务都会提供"长得像 OpenAI"的接口格式。这类接口通常包含四个要素:
api_keybase_urlmodelmessages
典型调用结构如下:
client.chat.completions.create( model="deepseek-v4-flash", messages=[ {"role": "user", "content": "你好"} ], )
这就是常见的 Chat Completions 调用方式。LangChain 底层对接的也正是这类模型服务,只是它会把模型调用再封装成统一的组件,方便你后续和 Prompt、Parser、Retriever、Tool 等组合起来使用。
六、开发环境准备
6.1 Python 版本怎么选?
建议使用 Python 3.10 或更高版本。
- ✅ Python 3.10 / 3.11(强烈推荐):LangChain 1.x 生态兼容性最好、第三方包适配最完整,踩坑最少
- ⚠️ Python 3.12 可正常使用
- ⚠️ Python 3.13 较新,部分小众集成包可能存在适配延迟

6.2 安装依赖
pip install langchain langchain-openai openai python-dotenv
如果下载慢,可走国内镜像:
pip install langchain langchain-openai openai python-dotenv -i https://pypi.tuna.tsinghua.edu.cn/simple
各包的作用:
langchain:LangChain 核心框架langchain-openai:LangChain 的 OpenAI 兼容模型集成openai:OpenAI 兼容 API 的官方 SDKpython-dotenv:读取.env配置文件

6.3 配置全局镜像源(可选)
Windows 用户可在 C:\Users\你的用户名\ 下新建
pip 文件夹,再创建 pip.ini:
[global] index-url = https://mirrors.aliyun.com/pypi/simple/ trusted-host = mirrors.aliyun.com
七、配置 DeepSeek API Key
在项目根目录创建 .env 文件:
DEEPSEEK_API_KEY=你的 DeepSeek API Key DEEPSEEK_BASE_URL=https://api.deepseek.com
⚠️ 注意:
- 不要把真实 API Key 写进代码
- 不要把
.env提交到 Git 仓库
可以创建 .gitignore 把敏感文件和缓存排除掉:
.env .venv/ __pycache__/
用下面这段小代码验证 .env 是否读取成功:
import os from dotenv import load_dotenv load_dotenv() print(os.getenv("DEEPSEEK_API_KEY"))
八、实战:四个可运行案例
动手前先记住:LangChain 不是"凭空"调用模型,它底层依然依赖模型服务。所以我们的顺序是——先用原生 SDK 验证 DeepSeek 能不能调通,再用 LangChain 封装。
案例一:直接用 OpenAI 兼容 SDK 调用 DeepSeek
创建 01_openai_compatible.py:
import os from dotenv import load_dotenv from openai import OpenAI load_dotenv() client = OpenAI( api_key=os.getenv("DEEPSEEK_API_KEY"), base_url=os.getenv("DEEPSEEK_BASE_URL"), ) response = client.chat.completions.create( model="deepseek-v4-flash", messages=[ {"role": "user", "content": "请用一句话介绍 LangChain 是什么"} ], ) print(response.choices[0].message.content)
💡 这是原生 openai Python SDK(不是 LangChain)。注意这里的
client.chat.completions是客户端下的子模块,别和 LangChain 的ChatOpenAI类混淆。
只要能看到模型回答,就说明三件事都成立:API Key 正确 + 网络能访问 DeepSeek + 模型调用成功。
案例二:ChatOpenAI 写法
import os from dotenv import load_dotenv from langchain_openai import ChatOpenAI load_dotenv() # 创建 ChatOpenAI 模型实例 model = ChatOpenAI( model="deepseek-v4-flash", temperature=0.7, # 控制输出的随机性,0~2 之间,值越大越随机 api_key=os.getenv("DEEPSEEK_API_KEY"), base_url=os.getenv("DEEPSEEK_BASE_URL"), ) # 单次调用 response = model.invoke("请解释 LangChain 模型接口的统一性。") print(response.content) # 流式输出 for chunk in model.stream("请用一句话总结人工智能的意义:"): print(chunk.content, end="")
📌 关于
temperature(控制输出随机性/创造力的核心参数,一般取值 0~2):
= 0:完全确定,每次输出一模一样 → 适合代码、数学、事实问答、翻译0 ~ 0.7:轻微随机、逻辑稳定 → 日常聊天、文案、总结首选0.7 ~ 1.0:创造力强、措辞多变 → 故事、创意写作、头脑风暴> 1.0:随机性极高、易胡编 → 极少使用新项目一律优先用
ChatOpenAI,老式OpenAI类已逐步废弃。
案例三:用 LangChain 的 init_chat_model 初始化
虽然 ChatOpenAI 仍可用,但 自 LangChain 0.2 起,官方推荐用统一的工厂方法 init_chat_model,在最新的 1.0 中继续得到强化——这是本课程的标准写法。
创建 02_langchain_first_call.py:
import os from dotenv import load_dotenv from langchain.chat_models import init_chat_model load_dotenv() model = init_chat_model( base_url=os.getenv("DEEPSEEK_BASE_URL"), api_key=os.getenv("DEEPSEEK_API_KEY"), model="deepseek-v4-flash", temperature=0.7, model_provider="openai", # 表示"按 OpenAI 兼容格式"调用,不是指用 OpenAI 模型 ) # 流式输出 for chunk in model.stream("什么是 Deep Agent?"): print(chunk.content, end="")
运行:
python 02_langchain_first_call.py
这个案例和案例二的区别在于:案例二直接用 OpenAI 兼容 SDK,案例三用的是 LangChain 的模型组件。后续我们会把这个模型组件和 Prompt、Parser、Retriever 等组合在一起。
案例四:第一个"课程答疑助手"
创建 03_course_assistant.py,体验"模型初始化只写一次,业务函数反复调用":
import os from dotenv import load_dotenv from langchain.chat_models import init_chat_model load_dotenv() model = init_chat_model( base_url=os.getenv("DEEPSEEK_BASE_URL"), api_key=os.getenv("DEEPSEEK_API_KEY"), model="deepseek-v4-flash", temperature=0.7, model_provider="openai", ) def get_prompt(question): prompt = f""" 你是一名 LangChain 助教, 请使用最简洁的语言回答问题,要适合初学者。 回答格式如下: 1、先说结果 2、举例子 3、不要超过 200 字 学生的问题是:{question} """ return prompt if __name__ == "__main__": question = input("请输入您的问题:") for word in model.stream(get_prompt(question)): print(word.content, end="")
运行后输入诸如 LangChain 和直接调用 DeepSeek API 有什么区别? 即可。这个案例的关键是:模型初始化一次,业务通过函数调用,Prompt 控制回答风格和输出要求(Prompt 模板后面会专门讲)。
九、代码关键点解析
| 关键点 | 作用 |
|---|---|
load_dotenv() | 读取 .env 文件中的 DEEPSEEK_API_KEY / DEEPSEEK_BASE_URL |
init_chat_model(...) | 用 LangChain 统一方式初始化聊天模型;model_provider="openai" 表示按 OpenAI 兼容格式调用 |
model.invoke(...) | 执行一次模型调用,回答内容在 response.content 中 |
model.stream(...) | 流式输出,逐字返回,体验更顺滑 |
init_chat_model 标准写法回顾:
model = init_chat_model( model="deepseek-v4-flash", model_provider="openai", api_key=os.getenv("DEEPSEEK_API_KEY"), base_url=os.getenv("DEEPSEEK_BASE_URL"), )
十、其他大模型怎么接?
LangChain 的精髓就是"统一入口 + 换参数"。下面三种模型的接入思路都一致。
10.1 OpenAI(通过国内代理 CloseAI)
API 密钥在 CloseAI - 亚洲规模最大的企业级AI中转平台 获取(注意平台需有余额,否则会报余额不足错误)。

from langchain_openai import ChatOpenAI model = ChatOpenAI( model="gpt-4o-mini", temperature=0.7, api_key="替换为你的_API_Key", base_url="https://api.openai-proxy.org/v1", ) for chunk in model.stream("请用一句话总结人工智能的意义:"): print(chunk.content, end="")
⚠️ 代理平台必须包含你调用的模型,否则会报错。
10.2 通义千问 Qwen
Qwen 是阿里推出的系列模型,经 DashScope(百炼)平台提供 API。

你可能会想直接这样写:
from langchain.chat_models import init_chat_model model = init_chat_model( model="qwen-plus", model_provider="dashscope", # ❌ 暂不支持 )
但运行后会报错:Unsupported model_provider='dashscope'。原因是 DashScope 还没被 LangChain 官方纳入统一注册体系。解决办法是走社区扩展包 langchain-community:
pip install -U dashscope pip install langchain_community

from langchain_community.llms.tongyi import Tongyi model = Tongyi( model="qwen-plus", temperature=0.3, api_key="替换为你的_API_Key", ) for chunk in model.stream("LangChain 有哪几部分组成?"): print(chunk, end="")
10.3 硅基流动(SiliconFlow)
官网:https://www.siliconflow.cn/,需先申请 API Key,支持 DeepSeek、Qwen 等模型。

在 .env 中加入:
SILICONFLOW_BASE_URL=https://api.siliconflow.cn/v1
SILICONFLOW_API_KEY=你的硅基流动 Key
📌 通用接入顺序:① 首选
init_chat_model(统一接口、可移植性强);② 若报"不支持",去社区找扩展包;③ 注意版本匹配,扩展包与模型 SDK 版本需兼容。
十二、本章重点回顾
- ✅ LangChain 是用来组织大模型应用开发的框架
- ✅ DeepSeek API 兼容 OpenAI 格式,换 Key / base_url / model 即可调用
- ✅ 先用 OpenAI SDK 验证 DeepSeek 能否调通,再用 LangChain 封装
- ✅ LangChain 中用
init_chat_model初始化模型(官方推荐) - ✅
invoke用于执行一次模型调用 - ✅ API Key 务必放在
.env中,别写进代码、别提交 Git
到这里,你已经完成了 LangChain 的第一个可运行案例 🎉 下一篇我们将深入 Prompt 模板与组件组合,敬请期待!
更多推荐





所有评论(0)