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

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

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


什么是 LangChain?

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

  • 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 接口)

相关推荐
染指11102 天前
122.Agent-LangChain核心组件-中间件-动态提示词(dynamic_promapt)
人工智能·langchain·agent·agents
小林ixn2 天前
从 LangChain 到 LangGraph:用「网状工作流」解锁多 Agent 协作的正确姿势
langchain·llm·agent
CODER03042 天前
ubuntu22.04部署完整deepseek局域网web服务全过程(RTX5090安装黑屏+web端多人并发)
pytorch·webui·ubuntu22.04·ollama·deepseek·rtx5090·自然语言模型
华科大胡子2 天前
DeepSeek Harness 开源贡献手记:从入门到合入主线
deepseek
Together_CZ2 天前
DeepSeek-V4.1-Flash:Pushing the Limits of KV Cache Compression——推动 KV 缓存压缩的极限
缓存·llm·compression·kv cache·deepseek·v4.1-flash·推动 kv 缓存压缩的极限
梦在远山后2 天前
从手写 Loop 到可恢复 Runtime:用 LangGraph、PostgreSQL Checkpoint 与 AG-UI 跑通中断恢复
python·langchain·agent
roamingcode3 天前
DeepSeek Harness 记忆召回插件的“PRD”设计拆解
agent·memory·deepseek·harness·dsh·dsh-plugin
前端精髓3 天前
langchain TS 基本用法入门
langchain
前端小白乘风3 天前
VS Code 终于能连微信了!发现一个硬核开源神仙插件:WeChat AHP
微信·visual studio code·deepseek
小白勇闯网安圈3 天前
第5章 流式输出与人工审核
python·langchain