从前端到 AI:用 LangChain.js 轻松接入 DeepSeek

在 AI 浪潮席卷的今天,前端工程师拥有得天独厚的优势------我们离用户最近,天然擅长构建交互体验。然而,当面对大语言模型(LLM)的复杂调用、上下文管理和多工具协同(Agent)时,传统的 fetch 或者是简单的 SDK 封装就显得有些捉襟见肘了。

这就是 LangChain 闪亮登场的时候。今天这篇博文,我们将以前端开发者最熟悉的 JavaScript 视角,带大家快速通关 LangChain,并手把手接入当下性价比之王 ------ DeepSeek。


什么是 LangChain?

简单来说,LangChain 是一个用于构建大模型应用的开源框架。 对于前端同学,你可以把它类比为 AI 届的 Next.js 或 Axios。

  • Axios 统一了接口请求、拦截器、错误处理;
  • LangChain 则统一了各种大模型(OpenAI, DeepSeek, Anthropic 等)的调用接口,并提供了提示词管理、链式调用(Chains)、数据向量化、记忆组件等标准模块。

通过 LangChain,你可以一套代码适配多个模型,并且能够像拼积木一样,把不同的 AI 模块组合成一个复杂的应用。


实战:JS 接入 DeepSeek

既然要动手,我们就用目前最顶流的 DeepSeek 来做个实战演练。我们将构建一个简单的"AI 翻译官",把用户输入的中文翻译成带有对应 emoji 的英文。

1. 环境准备

首先,初始化一个 Node.js 项目并安装 LangChain 核心库以及 DeepSeek 专属适配器:

bash 复制代码
npm init -y
npm install @langchain/core @langchain/deepseek dotenv

在项目根目录下创建一个 .env 文件,配置你的 DeepSeek API Key(可以在 DeepSeek 开放平台申请):

env 复制代码
DEEPSEEK_API_KEY="你的_deepseek_api_key"

2. 编写代码

新建 index.js,写下我们的核心逻辑:

javascript 复制代码
import { ChatDeepSeek } from "@langchain/deepseek";
import { ChatPromptTemplate } from "@langchain/core/prompts";
import { StringOutputParser } from "@langchain/core/output_parsers";
import 'dotenv/config'; // 自动加载 .env 变量

async function main() {
  // 1. 初始化 DeepSeek 模型
  const model = new ChatDeepSeek({
    model: "deepseek-chat", // 或者是 "deepseek-reasoner" (R1)
    temperature: 0.3,
  });

  // 2. 创建提示词模板 (Prompt Template)
  const promptTemplate = ChatPromptTemplate.fromMessages([
    ["system", "你是一个专业翻译官。请将用户输入的中文翻译成英文,并在句尾附带一个贴切的 emoji。"],
    ["user", "{inputText}"],
  ]);

  // 3. 实例化输出解析器 (Output Parser)
  const outputParser = new StringOutputParser();

  // 4. 使用 LCEL (LangChain Expression Language) 组装流水线
  const chain = promptTemplate.pipe(model).pipe(outputParser);

  // 5. 执行链式调用
  const result = await chain.invoke({
    inputText: "今天天气真好,我想去公园散步。",
  });

  console.log("AI 回复:\n", result);
}

main().catch(console.error);

3. 运行结果

在终端执行 node index.js,你会看到类似如下的输出:

text 复制代码
AI 回复: 
The weather is really nice today, I want to go for a walk in the park. ☀️🌳

拆解:LangChain 核心模块应用

麻雀虽小,五脏俱全。在这段十几行的代码中,其实已经涵盖了 LangChain 最核心的三个模块。前端同学可以用我们熟悉的"数据流"视角来理解它们:

1. Models(模型层)

代码中的 ChatDeepSeek 就是模型层。LangChain 将所有的聊天模型都抽象成了统一的接口(通常包含 .invoke() 方法)。

  • 前端心智模型 :这就像是封装好的组件。今天你用的是 ChatDeepSeek,明天如果老板要求换成 ChatOpenAI,你只需要更改导入的包和配置,后面的业务逻辑(Prompt、Parser)完全不需要动。

2. Prompts(提示词管理)

传统的做法是直接写模板字符串 你是一个... ${input},但当业务变复杂、系统提示词(System)与用户提示词(User)混合时,字符串拼接会变成灾难。

  • ChatPromptTemplate.fromMessages 帮我们规范了对话结构。
  • 前端心智模型 :类似于前端的 Props 传参 。定义好结构后,通过 {inputText} 预留插槽,在最后 invoke 时再动态传入真正的数据。

3. Output Parsers(输出解析器)

大模型默认返回的是一个复杂的 JSON 对象(包含 Token 消耗、结束原因等细节),但在前端展示时,我们通常只需要那段文本。

  • StringOutputParser 的作用就是把大模型返回的复杂对象"清洗"干净,直接抽取出纯文本字符串。
  • 前端心智模型 :类似于 Axios 的 Response 拦截器(Interceptor),在数据传给页面组件之前,统一进行格式化处理。

4. 核心灵魂:LCEL(LangChain 表达式语言)

代码中最精妙的一行是:

javascript 复制代码
const chain = promptTemplate.pipe(model).pipe(outputParser);

这里的 .pipe() 极其类似于前端做函数式编程(如 RxJS)或者在 Node.js 中处理流(Stream)的 pipe。 LangChain 通过这种方式,把 "输入 -> 格式化 Prompt -> 丢给模型 -> 解析输出" 的全流程串联成了一条自动化流水线(Chain)。


总结与展望

对于前端开发者而言,LangChain.js 极大地降低了我们跨界 AI 的门槛。它用我们熟悉的面向对象、函数式组合以及 JavaScript/TypeScript 语法,抹平了底层各种大模型的差异。

今天我们实现的是一个简单的单向流水线,在进阶应用中,LangChain 还提供了 Memory(记忆模块,用于做多轮对话) 和 Agents(智能体,让 AI 可以自主调用你的前端 API 接口)。

相关推荐
for_ever_love__37 分钟前
LangChain 结构化输出:让模型稳定吐出符合 schema 的 JSON
langchain·json
用户29469405448161 小时前
个人开发者上架鸿蒙 AI 应用,最后倒在安全评估实名制这一格
harmonyos·deepseek
大模型真好玩3 小时前
DeepSeek Harness 进阶——认识DeepSeek Harness插件机制,并从0到1实现一个插件
人工智能·agent·deepseek
AI日报派送佬11 小时前
2026年10月14日AI行业日报|Gemini 4 Argon正式发布;小模型跨设备传播风险引发安全热议
网络·人工智能·openai·谷歌·deepseek·anthropic·ai日报
冬奇Lab15 小时前
一天一个开源项目(第237篇):DeepSeek Bot —— 把 DeepSeek Harness 变成一个有记忆、能群聊、会互相派活的 Bot 团队
人工智能·开源·deepseek
flash俊杰18 小时前
给 7B 小模型当 Agent 框架:真机三轮排障,十条失败链逐个补
langchain
打工仔折腾 AI20 小时前
LangChain 工具调用实战:从 Tool 定义到 Agent 执行链路拆解
java·前端·人工智能·后端·python·langchain·ai agent 实战
逻辑与温度21 小时前
DSH踩坑:AI总爱“过度发挥”?我写了quick-mode技能锁死AI,指哪打哪
deepseek
for_ever_love__1 天前
LangChain 上线部署:把链和 Agent 变成能对外服务的 API
langchain·部署·fastapi·rest api·服务·上线·langserve
染指11101 天前
145.Agent-LangGraph基础概念和安装和简单代码示例
java·服务器·数据库·langchain·agents