5分钟上手LangChain.js:用DeepSeek给你的App加上AI能力

之前我的想法是这样的:ChatGPT这么强,怎么才能把它接到我的 Node 项目里?直接调 API 不行吗?

当然可以。但如果你的需求不只是"发一句话等回复",而是想让 AI 记住对话上下文从自己的知识库里找答案 、甚至自己决定调用哪个函数------这时候 LangChain 就派上用场了。

我也是个 JS/TS 开发者,之前翻 LangChain 官方文档,满眼都是 Python 示例,倒不是说不能看,但是确实看着不太舒服,偶尔遇到不熟悉的api还需要查文档或问AI。好在现在 1.0 版本已经很成熟,今天我就用最少的代码,带你跑通第一个 LangChain.js 应用,而且用的是国内友好的 DeepSeek API

第一步:装包

新建一个空目录,初始化并安装依赖:

bash 复制代码
mkdir langchain-demo
cd langchain-demo
npm init -y
npm install langchain @langchain/openai

等等,你不是说用 DeepSeek 吗,怎么装的是 @langchain/openai

因为 DeepSeek 提供了完全兼容 OpenAI 的接口 ,我们只需要改一行 baseURL 就行,这是 LangChain 统一接口设计的好处。

第二步:拿个 API Key

DeepSeek 开放平台 注册个账号,在 API Keys 页面生成一个密钥,复制下来。

第三步:写代码

项目根目录新建 index.js,把下面这段粘进去:

js 复制代码
import { ChatOpenAI } from "@langchain/openai";
import { ChatPromptTemplate } from "@langchain/core/prompts";
import { StringOutputParser } from "@langchain/core/output_parsers";

// 1. 用 DeepSeek 的接口,只改 baseURL 和 model 名
const model = new ChatOpenAI({
  apiKey: '你的api key',
  model: "deepseek-chat",
  temperature: 0.7,
  baseURL: "https://api.deepseek.com/v1",
});

// 2. 写个提示词模板,{topic} 是占位符
const promptTemplate = ChatPromptTemplate.fromMessages([
  ["system", "你是一个幽默的脱口秀演员。"],
  ["human", "给我讲一个关于{topic}的笑话。"],
]);

// 3. 输出解析器:把 AI 的回复转成纯文本
const outputParser = new StringOutputParser();

// 4. 用 .pipe() 串成一条链
const jokeChain = promptTemplate.pipe(model).pipe(outputParser);

// 5. 执行
async function main() {
  const joke = await jokeChain.invoke({
    topic: "程序员",
  });
  console.log(joke);
}

main().catch(console.error);

然后跑起来:

复制代码
node index.js

如果一切顺利,你会看到类似这样的输出:

ini 复制代码
为什么程序员总分不清万圣节和圣诞节?
因为 Oct 31 == Dec 25!
(八进制31等于十进制25)

简单来说,一个典型的链式工作流是:

用户输入 + 提示词模板 ➡️ 构造完整提示 ➡️ 发送给模型 ➡️ 获取模型原始输出 ➡️ 解析为可用格式

这短短十几行,藏了 LangChain 四个最核心的概念

概念 在你的代码中对应 作用
📝 提示词模板 (Prompt Templates) ChatPromptTemplate 将用户输入(如{topic})和固定指令组合,构造出给模型的完整提示。它使提示可复用、可管理。
🧠 模型 (Models) ChatOpenAI 这是与大语言模型(LLM)交互的接口。LangChain支持多种提供商(OpenAI、Anthropic、本地模型等),通过统一的接口调用。
🔧 输出解析器 (Output Parsers) StringOutputParser 将模型输出的原始响应(通常是复杂的对象)解析、转换成你应用程序容易处理的格式(如字符串、JSON对象)。
⛓️ 链 (Chains) promptTemplate.pipe(model).pipe(outputParser) 链是LangChain的灵魂 。它通过 .pipe() 方法,将多个组件(模板、模型、解析器等)按顺序组合 成一个可执行的工作流。jokeChain.invoke 就是执行这个工作流。

跑通之后,建议你动手改一改

  • topic 换成"猫"、"面试"、"股票"......看看 AI 的幽默感稳不稳定;

  • temperature 改成 0.1 和 0.9 各跑一次,感受一下"确定性"和"创造力"的区别;

  • 删掉 .pipe(outputParser),看看 invoke 返回的原始对象长什么样。

这些改动花不了两分钟,但对理解 LangChain 的工作流非常有帮助。

写在最后

这只是 LangChain 世界里的 "Hello World" 。一旦你习惯了 模型 → 模板 → 解析器 → 链 这个模式,后面学 RAG(检索增强生成)、Agent(智能体)都会非常顺畅。

这篇文章用的是 LangChain.js 1.0 的最新 API。如果你也在用 JS/TS 做 AI 应用,别再被 Python 教程劝退了------这套工具链,我们前端用着也挺顺手,希望可以帮助你入门~

相关推荐
wuhen_n1 小时前
双端 Diff 算法详解
前端·javascript·vue.js
UrbanJazzerati1 小时前
Vue 3 纯小白快速入门指南
前端·面试
雮尘1 小时前
手把手带你玩转Android gRPC:一篇搞定原理、配置与客户端开发
android·前端·grpc
光影少年1 小时前
说说闭包的理解和应用场景?
前端·javascript·掘金·金石计划
是一碗螺丝粉1 小时前
LangChain 核心组件深度解析:模型与提示词模板
前端·langchain·aigc
狗哥哥1 小时前
微前端架构下的平台级公共组件资源体系设计
前端·架构
MQliferecord1 小时前
首屏轮播图使用cdn加载webp图片的代码案例
前端
菜鸟shuai1 小时前
如何在老项目中使用AI实现智能问答
前端
我是何平1 小时前
js中,什么是快速排序(Quick Sort)
前端