LangChain 入门指南:从概念理解到环境搭建(新手友好) LangChain 入门第一课从零搭好环境跑通你的第一个 AI 案例这是 LangChain 系列的第一篇。这一章我们不追花哨功能先把最基础的开发闭环走通搞清楚 LangChain 是什么 → 理解它和 DeepSeek 的关系 → 装好 Python 环境 → 用代码真正调一次模型。跟着做你很快就能跑出属于自己的第一个 LangChain 小程序。一、本章你要带走什么读完并跟着敲一遍你应该能够说清楚LangChain 是什么理解LangChain、模型 API、DeepSeek三者之间的关系在自己的电脑上搭建 Python 环境用DeepSeek 的 OpenAI 兼容接口完成一次普通调用用 LangChain 的init_chat_model初始化 DeepSeek 模型写出第一个可运行的 LangChain 小案例二、先认识智能体为什么需要 LangChain2.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、LLMChainGitHub 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 为什么首选 PythonLangChain 同时支持 Python 和 JavaScript但Python 版功能最全、更新最快、社区最活跃——它既是 AI 领域的第一语言也是本课程实操的唯一选择。3.4 生态全家桶四个部件怎么分工LangChain 生态 LangChain核心 LangGraph Deep Agent LangSmith部件角色什么时候用LangChain打地基最基础的开发能力做个简单 AI 功能、小智能体LangGraph用有向图编排复杂流程你要完全掌控每一步流转Deep Agent开箱即用的重型智能体框架全自动复杂任务懒得写底层LangSmith网站形式的可观测/质量管理平台调试、追踪、看智能体跑得对不对三者怎么选重活、全自动 → 用Deep Agent底层自动调用 LangChain LangGraph简单线性功能 → 直接LangChain别折腾流程要完全自定义 → 手写LangGraphLangChain 当底座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 / 框架只要替换三样东西就能调用 DeepSeekAPI Keybase URLmodel 名称本课程用到的 base URL 与模型# DeepSeek 官方 OpenAI 兼容 base URL https://api.deepseek.com # 本课程主要使用的模型 deepseek-v4-flash五、OpenAI 兼容 API 是什么很多大模型服务都会提供长得像 OpenAI的接口格式。这类接口通常包含四个要素api_keybase_urlmodelmessages典型调用结构如下client.chat.completions.create( modeldeepseek-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各包的作用langchainLangChain 核心框架langchain-openaiLangChain 的 OpenAI 兼容模型集成openaiOpenAI 兼容 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_URLhttps://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.pyimport os from dotenv import load_dotenv from openai import OpenAI load_dotenv() client OpenAI( api_keyos.getenv(DEEPSEEK_API_KEY), base_urlos.getenv(DEEPSEEK_BASE_URL), ) response client.chat.completions.create( modeldeepseek-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( modeldeepseek-v4-flash, temperature0.7, # 控制输出的随机性0~2 之间值越大越随机 api_keyos.getenv(DEEPSEEK_API_KEY), base_urlos.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.pyimport os from dotenv import load_dotenv from langchain.chat_models import init_chat_model load_dotenv() model init_chat_model( base_urlos.getenv(DEEPSEEK_BASE_URL), api_keyos.getenv(DEEPSEEK_API_KEY), modeldeepseek-v4-flash, temperature0.7, model_provideropenai, # 表示按 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_urlos.getenv(DEEPSEEK_BASE_URL), api_keyos.getenv(DEEPSEEK_API_KEY), modeldeepseek-v4-flash, temperature0.7, model_provideropenai, ) 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_URLinit_chat_model(...)用 LangChain 统一方式初始化聊天模型model_provideropenai表示按 OpenAI 兼容格式调用model.invoke(...)执行一次模型调用回答内容在response.content中model.stream(...)流式输出逐字返回体验更顺滑init_chat_model标准写法回顾model init_chat_model( modeldeepseek-v4-flash, model_provideropenai, api_keyos.getenv(DEEPSEEK_API_KEY), base_urlos.getenv(DEEPSEEK_BASE_URL), )十、其他大模型怎么接LangChain 的精髓就是统一入口 换参数。下面三种模型的接入思路都一致。10.1 OpenAI通过国内代理 CloseAIAPI 密钥在 CloseAI - 亚洲规模最大的企业级AI中转平台 获取注意平台需有余额否则会报余额不足错误。from langchain_openai import ChatOpenAI model ChatOpenAI( modelgpt-4o-mini, temperature0.7, api_key替换为你的_API_Key, base_urlhttps://api.openai-proxy.org/v1, ) for chunk in model.stream(请用一句话总结人工智能的意义): print(chunk.content, end)⚠️ 代理平台必须包含你调用的模型否则会报错。10.2 通义千问 QwenQwen 是阿里推出的系列模型经 DashScope百炼平台提供 API。你可能会想直接这样写from langchain.chat_models import init_chat_model model init_chat_model( modelqwen-plus, model_providerdashscope, # ❌ 暂不支持 )但运行后会报错Unsupported model_providerdashscope。原因是 DashScope 还没被 LangChain 官方纳入统一注册体系。解决办法是走社区扩展包langchain-communitypip install -U dashscope pip install langchain_communityfrom langchain_community.llms.tongyi import Tongyi model Tongyi( modelqwen-plus, temperature0.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_URLhttps://api.siliconflow.cn/v1SILICONFLOW_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 模板与组件组合敬请期待