从零学LangChain01 📅 发布时间:2026/7/15 4:32:47 👁️ 浏览次数: 文章目录[TOC]一、为什么我们需要LangChain1.1 直接调用大模型API到底有多麻烦1.2 代码对比原生API vs LangChain1.3 LangChain的核心价值二、LangChain到底是什么2.1 定义与背景2.2 LangChain能做什么2.3 生态全景LangChain、LangGraph、Deep Agents怎么选三者核心对比新手选型建议三、提前建立全局观LangChain核心架构3.1 三层模块速览基础层定义“用什么和大模型说话”能力层定义“怎么实现功能”应用层定义“解决什么业务问题”3.2 模块协作示例四、保姆级环境搭建用uv快速搭建开发环境4.1 先搞懂conda、uv、pip、venv是什么关系为什么推荐用uv而不是conda4.2 LangChain的包结构4.3 步骤一安装uvWindows系统PowerShell执行macOS / Linux系统4.4 步骤二创建项目并安装LangChain4.5 必懂项目里的两个核心文件4.6 验证安装是否成功4.7 大模型API平台怎么选有海外支付科学上网国内网络只有支付宝想省钱/学习用途4.8 配置环境变量五、10行代码跑通你的第一个LangChain程序六、后续学习路径建议推荐官方学习资源一、为什么我们需要LangChain1.1 直接调用大模型API到底有多麻烦大模型原生API只负责“接收输入、返回输出”但真正做应用的时候我们需要的功能远不止于此。每一项额外功能都需要开发者自己从零实现你想实现的功能直接用API需要手动做的事保持对话上下文、记忆历史对话自己管理对话状态、拼接消息列表、控制token长度上限让模型访问私有数据RAG检索增强生成自己搭建向量数据库、写文档切分逻辑、实现检索流程让模型调用计算器、查天气等外部工具自己定义函数格式、解析模型返回的JSON、处理调用异常复杂任务分步执行、自主规划自己写循环、状态机、重试逻辑从零搭建Agent架构输出固定格式的JSON数据自己写正则/解析器、处理模型输出不规范的情况从OpenAI切换到DeepSeek/Claude修改接口、参数、解析逻辑几乎要重写一遍代码单个功能实现起来不难但当多个功能组合在一起你会发现大部分精力都耗在了底层重复工作上而非核心业务。1.2 代码对比原生API vs LangChain我们用最简单的模型调用举个例子直观感受差异方式一直接调用OpenAI原生APIimportopenai# 后续需要自己管理对话历史、解析输出、处理工具调用responseopenai.chat.completions.create(modelgpt-4,messages[{role:user,content:你好}])print(response.choices[0].message.content)方式二使用LangChain调用fromlangchain_openaiimportChatOpenAI# 统一接口支持流式、批处理、异步换模型只改一行配置llmChatOpenAI(modelgpt-4)responsellm.invoke(你好)print(response.content)简单调用的差距还不明显但一旦加上对话记忆、工具调用、RAG检索、结构化输出原生API的代码量会指数级增长而LangChain始终能保持简洁统一的写法。1.3 LangChain的核心价值一句话总结LangChain让你把精力从“怎么调API”转移到“怎么做产品”上它的核心价值可以概括为这几点核心价值具体说明不用重复造轮子对话管理、工具调用、RAG全流程都是现成的标准化组件模型无缝切换统一接口OpenAI、DeepSeek、Claude、本地模型改一行配置即可聚焦业务逻辑底层的消息拼接、参数解析、异常处理框架全部帮你完成生态极其丰富支持70模型提供商、100工具集成、50向量数据库对接调试效率更高配套LangSmith可视化工具每一步调用、每一次工具执行都可追踪二、LangChain到底是什么2.1 定义与背景LangChain是2022年10月由哈佛大学的Harrison Chase发起研发的开源框架专门用于开发大语言模型LLM驱动的应用程序它的发布时间甚至比ChatGPT还要早一个月。官方定位是构建大语言模型驱动应用的最简单方式。目前它已经是大模型应用开发领域最主流、生态最完善的框架之一。2.2 LangChain能做什么针对上面提到的开发痛点LangChain都提供了开箱即用的解决方案覆盖主流大模型应用场景应用场景LangChain的能力典型应用Agent智能代理预构建Agent架构模型可自主规划步骤并调用工具虚拟助手、自动化工作流RAG检索增强生成内置文档加载→文本切分→向量存储→检索全链路企业知识库问答、文档分析工具调用用tool装饰器一行定义工具模型自动识别调用计算器、天气查询、数据库操作智能问答系统结合检索能力与大模型构建基于私有知识库的问答客服机器人、内部知识库助手多Agent系统多个智能代理分工协作共同完成复杂任务项目管理、复杂决策支持2.3 生态全景LangChain、LangGraph、Deep Agents怎么选很多新手刚接触会被这三个名词搞晕它们不是竞争关系而是层层构建的三层生态从底层到高层分别是运行时、框架、套件控制力从强到弱上手难度从高到低。三者核心对比对比维度LangGraph运行时LangChain框架Deep Agents套件官方定位Agent运行时Agent核心框架Agent开箱套件核心理念用“图”精确控制每一步流程提供标准化抽象层自由组装组件开箱即用内置行业最佳实践适用场景需要确定性流程AI决策的企业级编排自定义Agent、RAG、工具链等通用开发复杂、长时间运行的自主Agent任务控制力最强每个节点/流转都可自定义中等可自定义但有抽象约束较弱信任大模型自主决策上手难度较高需理解图结构、状态管理中等10行代码即可上手最低几行代码就能跑通Token消耗最可控中等较高内置功能会额外消耗新手选型建议想快速做一个能干活的智能体不想操心架构 → 选Deep Agents需要自定义提示词、工具链、RAG流程灵活组装功能 →选LangChain入门首选需要精确控制每一步流程、加审批节点/人工审核/回滚 → 选LangGraph重要提示三者层层递进Deep Agents基于LangChain开发LangChain又基于LangGraph开发。入门不用了解LangGraph也能正常用LangChain随着项目复杂度提升再向下深挖更多控制力即可。三、提前建立全局观LangChain核心架构动手写代码之前先花2分钟建立整体认知。LangChain的模块可以分为三层从下到上分别是基础层、能力层、应用层。3.1 三层模块速览基础层定义“用什么和大模型说话”这一层是所有功能的地基定义了LangChain与大模型的通信标准Messages标准化消息格式包括系统消息、用户消息、AI消息、工具消息Prompts提示词模板支持变量插入和模板复用Streaming实时流式输出逐token返回结果Middleware模型调用前后插入重试、缓存、超时等通用逻辑能力层定义“怎么实现功能”这一层是大模型之上的核心能力组件每个组件可独立使用也可自由组合Models统一的模型调用接口支持对话模型、基础大模型、嵌入模型所有模型都用统一的invoke/batch/stream方法调用Tools用装饰器快速定义函数让大模型具备调用外部API的能力Memory管理对话历史支持短期记忆、长期记忆、摘要压缩记忆Structured Output用数据模型约束输出格式确保返回标准JSON应用层定义“解决什么业务问题”这一层是面向场景的顶层模块组合下面两层的能力解决实际问题Chains用管道符把提示词、模型、解析器串成一条流水线核心语法LCELRetrievalRAG检索增强生成全链路从文档加载到检索问答Agents智能代理自主规划执行步骤循环调用工具直到完成任务3.2 模块协作示例用“企业内部文档问答机器人”举个例子就能直观理解模块如何配合用户提问“公司年假政策是什么”Prompts模块把用户问题嵌入预设的提示词模板Retrieval模块从向量数据库检索相关的年假制度文档片段Models模块把用户问题检索到的文档一起发给大模型Structured Output模块要求大模型按指定格式返回答案Memory模块把本轮问答存入对话记忆支持用户后续追问四、保姆级环境搭建用uv快速搭建开发环境4.1 先搞懂conda、uv、pip、venv是什么关系很多新手第一步就被这些工具绕晕了其实开发Python项目只需要解决两个核心问题环境隔离不同项目用不同的Python版本和依赖互不干扰包安装把langchain、numpy这些第三方库安装到项目里不同工具就是围绕这两个需求做的我们用一张表讲清楚区别工具环境隔离能力包安装能力特点venv支持Python自带需搭配pipPython原生最基础功能简单pip不支持支持从PyPI装包原生包管理工具无环境隔离conda支持还能管理Python版本支持conda仓库PyPI功能全但体积大、速度慢uv支持可管理Python版本支持从PyPI装包Rust编写速度比pip快10-100倍功能覆盖venvpip为什么推荐用uv而不是condaLangChain全生态的包都在PyPI上不需要conda的额外仓库uv在安装速度、依赖管理、环境复现上都全面优于conda体积还极小。除非你做深度学习需要装CUDA等非Python库否则用uv完全足够。4.2 LangChain的包结构LangChain不是一个大而全的单一包而是按职责拆分成了多个小包按需安装即可不用一次性装全分类包名说明核心包langchain核心包必须安装langchain-core核心抽象和基础类随langchain自动安装模型集成langchain-openaiOpenAI/GPT系列模型集成langchain-deepseekDeepSeek模型集成langchain-ollamaOllama本地模型集成langchain-community社区维护的大量第三方集成功能扩展langchain-chromaChroma向量数据库集成python-dotenv.env环境变量加载工具4.3 步骤一安装uvWindows系统PowerShell执行powershell-ExecutionPolicy ByPass-cirm https://astral.sh/uv/install.ps1 | iexmacOS / Linux系统curl-LsSfhttps://astral.sh/uv/install.sh|sh安装完成后执行以下命令验证是否成功输出版本号即为安装成功uv--version备选方案也可以用pip install uv快速安装但更推荐官方安装方式不依赖本地Python环境。4.4 步骤二创建项目并安装LangChain我们一步步执行命令全程跟着敲就行创建项目目录并进入mkdirlangchain-coursecdlangchain-course初始化项目自动创建虚拟环境和项目配置文件uv init锁定Python版本推荐3.12兼容性最好uv python pin3.12安装LangChain核心包uvaddlangchain安装你需要的模型集成包选自己用的安装即可# OpenAI/GPT系列uvaddlangchain-openai# DeepSeekuvaddlangchain-deepseek# Ollama本地模型uvaddlangchain-ollama安装基础工具包# 加载.env环境变量uvaddpython-dotenv小提示用uv add而不是uv pip install因为前者会自动把依赖写入配置文件并生成锁文件方便后续团队协作和环境复现。4.5 必懂项目里的两个核心文件执行完初始化后项目目录会多出几个核心文件我们用一个通俗的比喻理解pyproject.toml 购物清单你手动管理记录项目需要哪些依赖执行uv add会自动更新uv.lock 收银小票uv自动生成记录所有依赖的精确版本保证不同电脑安装的环境完全一致.venv目录 冰箱实际安装的虚拟环境不用手动管理加入.gitignore即可把pyproject.toml和uv.lock分享给同事对方只需要执行uv sync就能还原和你完全一致的开发环境再也不会出现“我电脑上能跑你电脑上报错”的问题。4.6 验证安装是否成功执行以下命令能正常输出版本号即为安装成功uv run python-cimport langchain; print(langchain.__version__)4.7 大模型API平台怎么选LangChain的核心优势是模型无关但前提是你要有可用的API密钥这里给不同需求的同学整理了选型建议有海外支付科学上网首选OpenAI、Anthropic官方平台延迟最低、最稳定国内网络只有支付宝CloseAI代理亚洲主流API中转平台兼容官方接口支持支付宝改一行base_url就能用DeepSeek国产模型里性价比极高兼容OpenAI接口格式学习成本极低想省钱/学习用途硅基流动新用户送免费Token支持大量开源模型兼容OpenAI接口智谱AIGLM-4-Flash永久免费中文能力优秀4.8 配置环境变量不建议把API密钥直接写在代码里容易泄露推荐用.env文件管理在项目根目录创建.env文件填入你的配置以OpenAI兼容格式为例# 模型API配置 OPENAI_API_KEY你的API密钥 OPENAI_BASE_URL你的API地址用代理/国产模型需要替换代码中读取环境变量的方式fromdotenvimportload_dotenvimportos# 加载.env文件load_dotenv()# 读取配置api_keyos.getenv(OPENAI_API_KEY)base_urlos.getenv(OPENAI_BASE_URL)重要安全提示一定要把.env文件加入.gitignore绝对不要提交到代码仓库避免密钥泄露。五、10行代码跑通你的第一个LangChain程序环境搭好后我们写一个最简单的模型调用程序验证整个环境是否正常importosfromdotenvimportload_dotenvfromlangchain_openaiimportChatOpenAI# 加载环境变量load_dotenv()# 初始化大模型实例llmChatOpenAI(modelgpt-4,# 换成你要用的模型名比如deepseek-chatapi_keyos.getenv(OPENAI_API_KEY),base_urlos.getenv(OPENAI_BASE_URL))# 调用模型responsellm.invoke(你好请用一句话介绍Python)# 打印结果print(response.content)运行代码能正常收到大模型的回复就说明你的LangChain环境已经完全搭建成功了六、后续学习路径建议LangChain的学习可以按照从基础到进阶的顺序逐步深入不用一开始就啃所有模块入门阶段Model I/O → Prompts → Output Parsers → ChainsLCEL语法进阶阶段Memory对话记忆 → Tools工具调用 → RAG检索增强生成高级阶段Agents智能代理 → LangGraph工作流编排 → 项目部署推荐官方学习资源LangChain官方文档https://docs.langchain.com/GitHub仓库https://github.com/langchain-ai/langchainLangSmith调试平台https://www.langchain.com/langsmith
【电路】电容(三)——耦合与退耦:从“信号桥梁”到“噪声隔离墙” 1. 耦合电容:电路中的信号桥梁我第一次接触耦合电容是在修理老式收音机时。当时发现音频信号从功放传到扬声器时总是断断续续,检查后发现是那个圆柱形的电解电容失效了。这个不起眼的小元件,就是典型的耦合电容。耦合电容的核心使命是让交流信… 2026/7/15 4:28:46
CC1312R7射频与模拟参数深度解析:从手册到实战的设计指南 1. 项目概述:为什么需要深挖射频与模拟参数?在物联网和工业无线传感领域摸爬滚打十几年,我见过太多项目因为前期对芯片“纸上参数”理解不透彻,导致后期在通信距离、功耗和系统稳定性上栽跟头。很多工程师拿到一颗像德州仪器CC131… 2026/7/15 4:28:46
Grok 4.5办公效率革命:4倍token效率实战指南 如果你还在用传统方式处理办公文档,每天在Word、Excel、PPT之间来回切换,那么Grok 4.5的发布可能会彻底改变你的工作流。这不是又一个"AI助手"的常规更新,而是真正意义上的办公效率革命。最近SpaceXAI发布的Grok 4.5在技术圈引起了… 2026/7/15 4:24:44
[AI] 这周最值得继续追的 3 个 AI / Dify 热点,到底哪一个最可能先落地? 这段时间 AI 相关信息实在太多了。 每天打开资讯流,你都会看到类似内容: 新模型发布了 智能体又火了 工作流自动化又出了新玩法 企业助手、知识库、周报生成、评审助手、内部 AI 平台,几乎每个方向都有人在做 问题是: 大多数团队根本没有精力把所有热点都跟一遍。 所以真正… 2026/7/15 6:35:40
[Dify实战] 为什么很多团队不是不会做 AI,而是没有先搭好可复用的 Dify 入口层? 很多团队做 AI 项目时,表面上看卡在“模型不够强”“提示词效果不稳定”“工作流总要返工”,但如果把项目过程拆开看,你会发现真正的问题,往往不是不会做,而是从一开始就没有把“入口层”搭好。 这里说的入口层,不是一个登录页,也不是一个表单页,而是“业务需求进入 A… 2026/7/15 6:35:40
caffeine缓存+rpc+notify清空缓存技术 大型跨服游戏中,经常是需要读取远程服务器上的数据,但是又不想每次RPC,此时就可以用到这种技术。 2026/7/15 6:35:40
Python爬虫实战:猫眼电影票房数据采集与可视化分析完整指南 这次我们来看一个Python爬虫实战项目——爬取猫眼电影票房数据并进行可视化分析。这个案例特别适合Python初学者和想要掌握爬虫核心技能的朋友,因为它涵盖了数据抓取、解析、存储和可视化的完整流程。猫眼电影作为国内重要的电影信息平台,其票房数据对分… 2026/7/15 6:31:38
[Dify实战] 做企业内部助手时,最容易被低估的不是提示词,而是权限、状态同步和反馈回写 这两年很多团队一做企业内部助手,最容易先花力气打磨的,往往都是提示词。 真正决定一个企业内部助手能不能上线长期跑下去的,很多时候不是它会不会说,而是它有没有边界、有没有状态、有没有回写闭环。 一开始这样做其实很正常。因为提示词最容易看到效果:改一版措辞,回答… 2026/7/15 6:31:38
STM32曼彻斯特解码:一种基于定时器与中断的免时钟线实现方案 1. 曼彻斯特编码基础与解码挑战曼彻斯特编码(Manchester Encoding)是一种经典的数字信号编码方式,在RFID、工业总线和低速通信领域广泛应用。它的核心特点是每个数据位都包含电平跳变:在EM4100标准中,下降沿代表"… 2026/7/15 6:27:37
行星减速机的工作原理是什么?从齿轮运动关系到减速比计算 一、行星齿轮机构的组成 标准行星齿轮机构主要包括: 太阳轮; 行星轮; 内齿圈; 行星架。 太阳轮位于机构中心。 多个行星轮围绕太阳轮均匀布置,行星轮内侧与太阳轮外啮合,外侧与内齿圈内啮合。 行星轮通过轴… 2026/7/15 0:03:00
阅读Java开源框架源码的心得分享! 前几日闲来无事有幸看到了一位博主分享自己阅读开源框架源码的心得,看了之后也引发了我的一些深度思考。我们为什么要看源码?我们该怎么样去看源码? 其中前者那位博主描述的我觉得很全了(如下图所示),就不做… 2026/7/15 0:03:00
【LINUX】驱动 【LINUX驱动】【字符设备】【中断】【Platform】【网课 设备树】【GPIO】【PINCTRL】【INPUT】【IIC】【SPI】【网络驱动】【屏幕驱动】【一 设备树】【二 内核模块编译】【三 基本驱动框架】【四 Platform总线设备驱动框架】【五 驱动子系统】【六 综合】 2026/7/15 0:07:01
Git reset 与 revert 深度对比:5个关键差异与 3 种典型应用场景 Git Reset 与 Revert 深度对比:5个关键差异与3种典型应用场景在团队协作开发中,代码版本管理如同行走钢丝——一步失误可能导致整个项目陷入混乱。作为Git进阶用户,你是否曾在深夜面对错误的提交束手无策?是否在强制推送后收到同事… 2026/7/13 8:31:55
GitHub 学生包申请避坑:5个常见失败原因与开发者工具调试方案 GitHub 学生包申请技术排障指南:5个高频失败场景与开发者工具实战方案第一次尝试申请GitHub学生包时,我盯着屏幕上那个不断转圈的加载动画整整15分钟,最终只等来了一行冰冷的错误提示。这可能是许多开发者共同的经历——明明按照教程操作&… 2026/7/14 18:25:04
冒烟测试用例设计规范:5%-10%覆盖率下的3类核心场景与执行标准 冒烟测试用例设计的黄金法则:5%-10%覆盖率下的精准筛选策略在快节奏的敏捷开发环境中,冒烟测试作为质量保障的第一道防线,其重要性不言而喻。当测试资源有限而时间紧迫时,如何从海量测试用例中精准筛选出那关键的5%-10%࿰… 2026/7/14 5:09:41