LangChain 入门与实践:从 LLM 调用到 AI 工作流的工程化思维
随着 ChatGPT 在 2022 年引爆 AIGC,基于 Transformer 的大语言模型(LLM)迅速进入应用层。然而,真正落地 AI 应用时,人们很快发现一个问题:调用模型很简单,构建复杂、可维护、可扩展的 AI 应用却很困难。
LangChain 正是在这样的背景下出现的。
一、LangChain 是什么?为什么需要它
LangChain 是一个 AI 应用开发框架 ,其目标并不是"造一个模型",而是帮助开发者高效组织和编排大语言模型能力。
从命名上看:
- Lang:Language / LLM(大语言模型)
- Chain:将多个步骤、节点、能力串联起来
LangChain 的核心价值在于:
把一次 LLM 调用,升级为可组合、可复用、可编排的 AI 工作流。
这使得 AI 应用不再只是"一次 prompt + 一次返回",而是具备工程结构的系统。
二、LangChain 的工程定位
在 AI 应用开发中,LangChain扮演的是中间层框架角色:
- 向下:适配不同 LLM Provider(OpenAI、DeepSeek 等)
- 向上:为业务提供统一、抽象的 AI 能力接口
关键特点
- LLM 可插拔
- 统一接口(Chat / Completion)
- 提示词模块化
- 流程可组合(Chain / Runnable)
- 适合构建 Agent 与复杂 AI 系统
这也是为什么 LangChain 往往比具体模型"生命周期更长"。
三、Node.js + ESM + 环境配置
LangChain 在 Node.js 生态下具有良好的工程体验,典型配置包括:
-
使用 ESM
json{ "type": "module" } -
使用
dotenv管理敏感信息 -
使用
pnpm安装依赖
bash
pnpm i @langchain/deepseek @langchain/core dotenv
环境变量统一管理模型 Key:
arduino
import 'dotenv/config'
这符合现代后端与 AI 工程的最佳实践。
四、LLM 适配器模式:统一模型调用
javascript
import { ChatDeepSeek } from '@langchain/deepseek';
const model = new ChatDeepSeek({
model: 'deepseek-reasoner',
temperature: 0
});
这里体现了 LangChain 的适配器思想:
- 不关心底层 API 差异
- 不需要手写请求逻辑
- 模型可随时替换
在 LangChain 中,模型是资源,不是架构核心。
五、PromptTemplate:提示词的工程化
在真实项目中,prompt 不应是随意拼接的字符串,而应是结构化、可复用的模板。
ini
const prompt = PromptTemplate.fromTemplate(`
你是一个{role}.
请用不超过{limit}字回答以下问题:
{question}
`);
通过 format 注入变量:
php
const promptStr = await prompt.format({
role: '前端面试官',
limit: '50',
question: '什么是闭包'
});
PromptTemplate 的价值在于:
- 提示词逻辑集中管理
- 参数化、可配置
- 易于调优与迭代
六、Chain:从一次调用到流程编排
最简单的 Chain(Prompt → Model)
ini
const chain = prompt.pipe(model);
const response = await chain.invoke({
topic: '闭包'
});
这里的 pipe 本质是:
将多个 Runnable 节点 串联成一个执行流程
每个节点:
- 可执行
- 可替换
- 可独立测试
RunnableSequence:多步骤 AI 工作流
javascript
const fullChain = RunnableSequence.from([
(input) => explainChain.invoke({ topic: input.topic }).then(res => res.text),
(explanation) =>
summaryChain.invoke({ explanation })
.then(res => `知识点:${explanation} 总结:${res.text}`)
]);
这个例子体现了 AI 应用的真实形态:
- 第一步:生成详细解释
- 第二步:基于结果进行总结
- 步骤之间通过数据流衔接
这已经不是"调模型",而是:
用 LLM 构建可控的业务流程
七、LangChain 的核心编程范式
通过这些示例,可以总结出 LangChain 的 AI 编程范式:
LLM 是黑盒,但 Prompt 是入口
- Prompt = 控制模型行为的唯一方式
- Prompt 需要工程化管理
AI 能力需要"拆步骤"
复杂问题 ≠ 一次调用解决
而是:
- 拆解任务
- 每一步职责清晰
- 串联成工作流
Chain 是 AI 应用的核心抽象
- Prompt 是节点
- Model 是节点
- Chain 是流程
- Runnable 是执行单元