匠人学院 JR Academy学AI来匠人
匠人学院 JR Academy学AI来匠人

Follow Us

linkedinfacebooktwitterinstagramweiboyoutubebilibilitiktokxigua

We Accept

/image/layout/pay-paypal.png/image/layout/pay-visa.png/image/layout/pay-master-card.png/image/layout/pay-airwallex.png/image/layout/pay-alipay.png
EN

关于公司

关于我们元宇宙课堂新闻资讯匠人工作成为导师匠人导师联系我们匠人商店J3.Club

匠人资源

工作内推匠人活动1对1私教行业白皮书线上学习平台面试中心分享面试经验Internship会员中心

AI 工具

AI 工具箱考证匠 Cert Master求职匠 Job Hunter牛小匠 UniMate AI

AI 学习方向

全部学习方向AI EngineerContext EngineeringVibe CodingPrompt MasterAI BuilderAI 产品经理Python 入门

AI 应用提效

AI 办公提效AI 数据分析AI 财务AI 内容创作AI 视觉创作前端开发Hermes AgentOpenClaw 本地智能体

大学资源

墨尔本大学昆士兰大学新南威尔士大学悉尼大学莫那什大学阿德莱德大学RMITQUTUTS

少儿 AI 教育

Airbotix 少儿 AI 编程澳洲家长实用资料库NAPLAN 成绩单怎么看My School 学校数据指南悉尼私校学费 2026少儿编程课程与训练营

移民服务

澳洲移民技术移民189/190/491雇主担保482/186/494投资移民188/888英国移民美国移民加拿大移民

企业合作

P3职业孵化器Enterprise (EN)企业培训实习合作招聘合作申请合作

求职代理

岗位代投职位监控LinkedIn代运营LinkedIn人脉代加了解P3项目

匠人支持

FAQsTerms & ConditionsPrivacy PolicyCancellation & Refund PolicySite map

Top Categories

Web全栈班DevOps项目班数据工程全栈班数据分析项目班编程入门班Business Analyst实习算法集训营

求职就业

BA和产品经理实习数据科学实习数据分析实习Marketing实习简历修改面试指导导师指导VIP

地址

Level 10b, 144 Edward Street, Brisbane CBD(Headquarter)
Level 2, 171 La Trobe St, Melbourne VIC 3000
四川省成都市武侯区桂溪街道天府大道中段500号D5东方希望天祥广场B座45A13号
Business Hub, 155 Waymouth St, Adelaide SA 5000

联系方式

hello@jiangren.com.au0421-672-555

Disclaimer

footer-disclaimerfooter-disclaimer

JR Academy acknowledges Traditional Owners of Country throughout Australia and recognises the continuing connection to lands, waters and communities. We pay our respect to Aboriginal and Torres Strait Islander cultures; and to Elders past and present. Aboriginal and Torres Strait Islander peoples should be aware that this website may contain images or names of people who have since passed away.

匠人学院网站上的所有内容,包括课程材料、徽标和匠人学院网站上提供的信息,均受澳大利亚政府知识产权法的保护。严禁未经授权使用、销售、分发、复制或修改。违规行为可能会导致法律诉讼。通过访问我们的网站,您同意尊重我们的知识产权。JR Academy Pty Ltd 保留所有权利,包括专利、商标和版权。任何侵权行为都将受到法律追究。查看用户协议

© 2017-2026 JR Academy Pty Ltd. All rights reserved.

ABN 26621887572

LangChain 框架指南
AI Engineer
LangChain 框架指南

LangChain 是构建 LLM 应用的流行框架,提供了链式调用、Agent、RAG 等丰富的功能模块。

官方文档↗LangChain JS↗
LangChain 框架指南LangChain 简介
LangChain 框架指南

LangChain 框架指南

审核者
Lightman Wang
Lightman Wang
Founder of JR Academy

快速入门

  • LangChain 简介
  • 安装配置
  • 快速开始

核心概念

  • Model I/O
  • Chains 链
  • Memory 记忆

高级功能

  • Agents 代理
  • RAG 检索增强
  • LangGraph

相关链接

  • ↗官方文档
  • ↗LangChain JS
WikiLangChain 框架指南

LangChain 框架指南

说实话,我第一次看到 LangChain 时觉得没必要——直接调 OpenAI SDK 不就行了,干嘛多一层封装?

然后一个客户找我,他们有个 GPT-4 客服机器人,跑了三个月后说要"顺便也接入 Claude 试试"。我打开代码一看:OpenAI 的 client.chat.completions.create()、消息格式、错误处理散落在 18 个地方。换模型意味着改 18 处代码,每处都要测。那天我花了整整半天,当场决定下个项目用 LangChain。

所以 LangChain 解决的核心问题不是"让 AI 调用变简单"——直接调 SDK 其实一点不麻烦。它解决的是当你的 AI 代码变复杂之后,怎么不让自己陷入维护地狱。


#LangChain 能帮你避免什么

先说不用它会发生什么:

你的 Prompt 开始是一个字符串,然后变成 f-string,然后变成一个函数,然后有人想"这里要支持中英文"于是 if/else 进来了,然后另一个人想"这里加个示例"……三个月后那段代码没人敢动。

输出解析更糟。模型今天返回 {"status": "ok"},明天心情不好返回 {"Status": "OK"},后天加了个解释性文字在 JSON 前面导致 json.loads() 直接崩。你写了一堆正则表达式来"修复"这个,然后 GPT-4o 出了个新版本又换输出格式了。

LangChain 的 PromptTemplate 和 OutputParser 就是专门管这两件事的。不神奇,但省心。


#架构:三层一看就懂

整个 LangChain 生态可以理解为三层:

┌─────────────────────────────────────────────────────┐
│                  你的业务代码                          │
└─────────────────────────────────────────────────────┘
                         │
                         ▼
┌─────────────────────────────────────────────────────┐
│               LangGraph(需要循环/多Agent时)          │
│   状态管理 · 条件分支 · 多节点协作 · 断点恢复           │
└──────────────────────┬──────────────────────────────┘
                       │
                       ▼
┌─────────────────────────────────────────────────────┐
│               LangChain(日常使用这层)                │
│                                                     │
│  Prompts     Models      Parsers      Memory        │
│  提示词模板   模型调用     输出解析     对话记忆        │
│                                                     │
│  Tools       Chains      Agents    VectorStores     │
│  工具集成     链式调用     自主代理    向量数据库        │
│                                                     │
│  LCEL:用 | 把这些组件串联起来                         │
└─────────────────────────────────────────────────────┘
                       │
            ┌──────────┴───────────┐
            ▼                     ▼
    LangSmith(调试追踪)    LangServe(部署API)

大多数时候你只用中间这层。LangGraph 是等你真的需要"循环"或"多个 AI 互相协作"时才引入的东西——不需要提前学。


#LCEL:理解这一个概念,其余都水到渠成

LangChain 0.2 引入了 LCEL(LangChain Expression Language),用 | 把组件串起来:

python
chain = prompt | llm | parser

这不只是好看的语法糖。用 | 连起来的 chain,自动获得这些能力:

python
# 同步调用,等完整结果 result = chain.invoke({"question": "..."}) # 流式输出,边生成边推给前端 for chunk in chain.stream({"question": "..."}): print(chunk, end="", flush=True) # 异步,配合 FastAPI result = await chain.ainvoke({"question": "..."}) # 批量并发 results = chain.batch([{"question": q} for q in questions])

我一开始觉得流式输出要另外搞一套逻辑,后来发现只要改 .invoke() 为 .stream() 就行了。这才体会到 LCEL 统一接口的价值。


#5 分钟跑通第一个 Chain

bash
pip install langchain langchain-openai python-dotenv
python
from dotenv import load_dotenv from langchain_core.prompts import ChatPromptTemplate from langchain_openai import ChatOpenAI from langchain_core.output_parsers import StrOutputParser load_dotenv() # 从 .env 读 OPENAI_API_KEY chain = ( ChatPromptTemplate.from_messages([ ("system", "你是一个{role},回答简洁,不超过 100 字。"), ("user", "{question}"), ]) | ChatOpenAI(model="gpt-4o-mini") | StrOutputParser() ) print(chain.invoke({"role": "Python 专家", "question": "什么是列表推导式?"}))

就这些。能跑通这个,LangChain 的核心用法你已经掌握了 80%。


#什么时候用,什么时候不用

这个问题很多人纠结,我直接给结论:

不需要 LangChain 的情况:你的项目只有一两个 AI 调用点,逻辑简单,不打算换模型。直接用 openai 包,代码更少,依赖更轻。

值得引入 LangChain 的情况:

  • 有 5 个以上的 AI 调用点,Prompt 散落各处 → PromptTemplate 统一管理
  • 需要解析结构化 JSON 输出,并且模型有时会输出格式错误 → OutputParser 自动处理
  • 要接 RAG,需要向量数据库 → 统一的 VectorStore 接口
  • 需要多轮对话记忆 → RunnableWithMessageHistory
  • 可能在不同模型间切换(OpenAI ↔ Claude ↔ Gemini)→ 改一行代码就行
场景直接用 SDK用 LangChain我的建议
单次问答✅ 5 行搞定杀鸡用牛刀SDK
5+ 个 Prompt 需要维护字符串拼接地狱PromptTemplateLangChain
需要解析 JSON 输出手写正则/重试OutputParserLangChain
RAG 接向量库手写每个库的适配统一接口LangChain
需要换模型改 N 处代码改一行LangChain
循环/自主决策 Agent手写状态机LangGraphLangChain

#学习路径:按需选,不用全学

目标:快速上线一个 AI 功能(1-2 小时)

  1. 安装与配置 — 装好环境,配 API Key
  2. Model I/O — PromptTemplate + 模型调用 + OutputParser

目标:做一个有记忆的对话机器人(再加 1 小时)

  1. Memory 记忆系统 — 多轮对话,session 管理

目标:做企业内部知识库问答(再加 2-3 小时)

  1. Chains — 把多步逻辑串起来
  2. RAG 检索增强 — 文档加载、向量化、检索

目标:做一个能自主调用工具的 Agent(再加 2 小时)

  1. Agents 代理系统 — 工具定义、自主决策
  2. LangGraph 进阶 — 需要循环逻辑时才看这个

#关于版本升级这件事

必须提前说:LangChain 的版本升级是我用过的开源库里最让人头疼的之一。

0.1 到 0.2,ConversationChain、LLMChain 全部被推荐改成 LCEL 写法。0.2 到 0.3,Pydantic v1 的代码要迁移到 v2,部分 import 路径改了。如果你在 Stack Overflow 或某个 CSDN 文章上找到代码,跑不通的概率很高,因为那文章可能是一年前写的。

辨别方法很简单:看到 from langchain.llms import OpenAI(注意不是 langchain_openai)或者 LLMChain,八成是旧代码。现代写法是 from langchain_openai import ChatOpenAI 加 LCEL。

我建议在 requirements.txt 里锁定版本:

langchain>=0.3.0,<0.4.0
langchain-openai>=0.2.0
langchain-community>=0.3.0

不锁版本的话,哪天 pip install -r requirements.txt 一跑,线上可能突然有什么东西不工作了。


#有一个工具从第一天就应该开启

LangSmith。

不开 LangSmith 调试 LangChain 就像闭着眼睛开车——你不知道每一步传了什么 Prompt、收到了什么响应、用了多少 Token、哪一步卡了多久。

接入方式非常简单,在 .env 里加三行:

bash
LANGCHAIN_TRACING_V2=true LANGCHAIN_API_KEY="ls__..." LANGCHAIN_PROJECT="my-project"

不改一行业务代码,自动追踪所有 Chain 调用。免费额度对个人项目完全够用。

这不是什么可选的"后期优化",是应该在写第一行 LangChain 代码的同一天就配好的东西。


#小结

几个值得记住的点:

  1. LangChain 的核心价值是统一接口和减少胶水代码,不是让 AI 变聪明。当项目只有一两个 AI 调用,不值得引入。
  2. LCEL 的 | 语法是整个框架的核心——prompt | llm | parser 就是最小完整应用,自动支持同步/流式/异步/批量四种调用方式。
  3. 选型逻辑:固定流程用 Chain,有条件判断/循环用 LangGraph,需要 AI 自主决定下一步才用 Agent。不要一开始就设计最复杂的。
  4. LangSmith 从第一天就接——遇到 Bug 时你会庆幸自己早开了它。
  5. 版本要锁定——LangChain 更新频繁,不锁版本某天会出现莫名其妙的兼容性问题。

下一步:安装与配置 — 5 分钟装好环境,跑通第一个 Chain

调试工具:LangSmith↗ | 官方文档↗ | LangGraph↗

System Design

系统设计必备:核心概念 + 经典案例

快速掌握取舍与设计套路,备战系统设计面试。

进入 System Design →
下一篇
安装配置
→

相关指南

LlamaIndex 框架指南LlamaIndex 框架指南→
OpenAI API 开发指南OpenAI API 开发指南→
Claude API 开发指南Claude API 开发指南→

相关路线图

ai-engineer→

目录

  • LangChain 框架指南
  • LangChain 能帮你避免什么
  • 架构:三层一看就懂
  • LCEL:理解这一个概念,其余都水到渠成
  • 同步调用,等完整结果
  • 流式输出,边生成边推给前端
  • 异步,配合 FastAPI
  • 批量并发
  • 5 分钟跑通第一个 Chain
  • 什么时候用,什么时候不用
  • 学习路径:按需选,不用全学
  • 关于版本升级这件事
  • 有一个工具从第一天就应该开启
  • 小结