LangChain 入门与实践:从 LLM 调用到 AI 工作流的工程化思维

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 应用的真实形态:

  1. 第一步:生成详细解释
  2. 第二步:基于结果进行总结
  3. 步骤之间通过数据流衔接

这已经不是"调模型",而是:

用 LLM 构建可控的业务流程


七、LangChain 的核心编程范式

通过这些示例,可以总结出 LangChain 的 AI 编程范式:

LLM 是黑盒,但 Prompt 是入口

  • Prompt = 控制模型行为的唯一方式
  • Prompt 需要工程化管理

AI 能力需要"拆步骤"

复杂问题 ≠ 一次调用解决

而是:

  • 拆解任务
  • 每一步职责清晰
  • 串联成工作流

Chain 是 AI 应用的核心抽象

  • Prompt 是节点
  • Model 是节点
  • Chain 是流程
  • Runnable 是执行单元
相关推荐
掘金安东尼7 分钟前
向大家介绍《开发者博主联盟》🚀
前端·程序员·github
火车叼位10 分钟前
div滚动条是否存在?用 v-scroll-detect 增加一个辅助class
前端
H_z_q240117 分钟前
web前端(HTML)银行汇款单的制作
前端·html
小宇的天下20 分钟前
Synopsys Technology File and Routing Rules Reference Manual (1)
java·服务器·前端
@PHARAOH21 分钟前
WHAT - Vercel react-best-practices 系列(四)
前端·react.js·前端框架
今天也要晒太阳47330 分钟前
对el-upload的上传文件显示名做长度限制
前端
Thomas游戏开发31 分钟前
分享一个好玩的:一次提示词让AI同时开发双引擎框架
前端·javascript·后端
linmoo198633 分钟前
Langchain4j 系列之二十四 - Scoring (Reranking) Models
人工智能·langchain·langchain4j·scoring·reranking
NEXT0634 分钟前
别再折磨自己了!放弃 Redux 后,我用 Zustand + TS 爽到起飞
前端·react.js
donecoding35 分钟前
Sass 模块化革命:告别 @import,拥抱 @use 和 @forward
前端·css·代码规范