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 教程劝退了------这套工具链,我们前端用着也挺顺手,希望可以帮助你入门~

相关推荐
美酒没故事°19 小时前
Open WebUI安装指南。搭建自己的自托管 AI 平台
人工智能·windows·ai
云烟成雨TD19 小时前
Spring AI Alibaba 1.x 系列【6】ReactAgent 同步执行 & 流式执行
java·人工智能·spring
Csvn19 小时前
🌟 LangChain 30 天保姆级教程 · Day 13|OutputParser 进阶!让 AI 输出自动转为结构化对象,并支持自动重试!
python·langchain
于慨19 小时前
Lambda 表达式、方法引用(Method Reference)语法
java·前端·servlet
石小石Orz19 小时前
油猴脚本实现生产环境加载本地qiankun子应用
前端·架构
从前慢丶19 小时前
前端交互规范(Web 端)
前端
AI攻城狮19 小时前
用 Obsidian CLI + LLM 构建本地 RAG:让你的笔记真正「活」起来
人工智能·云原生·aigc
鸿乃江边鸟19 小时前
Nanobot 从onboard启动命令来看个人助理Agent的实现
人工智能·ai
lpfasd12319 小时前
基于Cloudflare生态的应用部署与开发全解
人工智能·agent·cloudflare
俞凡19 小时前
DevOps 2.0:智能体如何接管故障修复和基础设施维护
人工智能