LangChain JS 入门:快速搭建前端 AI 开发环境

1. 引言

随着大语言模型(LLM)的普及,越来越多的前端开发者希望在自己的 Web 应用中集成 AI 能力。LangChain 作为最流行的 LLM 应用开发框架之一,最初以 Python 为主,而 LangChain.js 则为 JavaScript/TypeScript 开发者提供了同样的能力,让你可以在 Node.js 环境、浏览器端以及 Edge Functions 中快速构建 AI 应用。

本教程将带你从零开始,快速搭建基于 LangChain.js 的前端 AI 开发环境,并完成第一个可运行的对话示例。

2. 环境准备

在开始之前,请确保你的开发机满足以下条件:

  • Node.js:18.x 或更高版本(推荐 20.x LTS)
  • 包管理器:npm、yarn 或 pnpm(本文以 npm 为例)
  • 代码编辑器:VS Code 或其他你熟悉的编辑器
  • API Key:一个支持 OpenAI 兼容接口的模型服务商密钥(如 OpenAI、DeepSeek、Moonshot 等)

提示:如果你还没有 API Key,可以先使用本地模型(如 Ollama)或模拟响应来完成本教程的学习。

3. 初始化项目

打开终端,创建一个新的项目目录并初始化:

bash 复制代码
mkdir langchain-js-demo
cd langchain-js-demo
npm init -y

然后安装 LangChain.js 核心包:

bash 复制代码
npm install langchain @langchain/openai dotenv
  • langchain:LangChain.js 核心库
  • @langchain/openai:OpenAI 兼容接口的集成包
  • dotenv:用于加载 .env 环境变量文件

4. 配置环境变量

在项目根目录创建 .env 文件:

bash 复制代码
touch .env

编辑 .env 文件,填入你的 API Key 和模型配置:

env 复制代码
OPENAI_API_KEY=你的_API_Key
OPENAI_API_BASE=https://api.openai.com/v1
OPENAI_MODEL=gpt-4o-mini

如果你使用的是其他兼容 OpenAI 接口的服务商,只需修改 OPENAI_API_BASE 为对应的地址即可。

5. 编写第一个对话示例

在项目根目录创建 index.mjs 文件:

javascript 复制代码
import { ChatOpenAI } from "@langchain/openai";
import "dotenv/config";

// 初始化模型
const model = new ChatOpenAI({
  model: process.env.OPENAI_MODEL,
  apiKey: process.env.OPENAI_API_KEY,
  configuration: {
    baseURL: process.env.OPENAI_API_BASE,
  },
});

// 发送对话
const response = await model.invoke("用一句话介绍 LangChain.js");

console.log(response.content);

在终端运行:

bash 复制代码
node index.mjs

如果一切正常,你将在终端看到模型返回的回复。

6. 构建流式响应

在实际的前端应用中,流式输出能显著提升用户体验。LangChain.js 原生支持流式调用:

javascript 复制代码
import { ChatOpenAI } from "@langchain/openai";
import "dotenv/config";

const model = new ChatOpenAI({
  model: process.env.OPENAI_MODEL,
  apiKey: process.env.OPENAI_API_KEY,
  configuration: {
    baseURL: process.env.OPENAI_API_BASE,
  },
});

const stream = await model.stream("讲一个关于程序员的笑话");

for await (const chunk of stream) {
  process.stdout.write(chunk.content);
}

运行后,你会看到文字像打字机一样逐字输出。

7. 接入前端项目

LangChain.js 不仅能在 Node.js 中运行,也可以直接在前端浏览器中使用。下面是一个基于 Vite + React 的最小示例:

bash 复制代码
npm create vite@latest langchain-react-demo -- --template react
cd langchain-react-demo
npm install langchain @langchain/openai

在 src/App.jsx 中编写:

jsx 复制代码
import { useState } from "react";
import { ChatOpenAI } from "@langchain/openai";

function App() {
  const [input, setInput] = useState("");
  const [reply, setReply] = useState("");

  const handleSend = async () => {
    const model = new ChatOpenAI({
      model: "gpt-4o-mini",
      apiKey: import.meta.env.VITE_OPENAI_API_KEY,
      configuration: {
        baseURL: import.meta.env.VITE_OPENAI_API_BASE,
      },
    });

    const response = await model.invoke(input);
    setReply(response.content);
  };

  return (
    <div style={{ padding: 24 }}>
      <h1>LangChain.js 前端 Demo</h1>
      <input
        value={input}
        onChange={(e) => setInput(e.target.value)}
        placeholder="输入你的问题"
        style={{ width: 300, marginRight: 8 }}
      />
      <button onClick={handleSend}>发送</button>
      <p style={{ marginTop: 16 }}>{reply}</p>
    </div>
  );
}

export default App;

在项目根目录创建 .env 文件:

env 复制代码
VITE_OPENAI_API_KEY=你的_API_Key
VITE_OPENAI_API_BASE=https://api.openai.com/v1

注意:在浏览器端直接暴露 API Key 存在安全风险,生产环境建议通过后端代理转发请求。

8. 常见问题与排查

Q1:提示 401 Unauthorized

检查 .env 中的 API Key 是否正确,以及 OPENAI_API_BASE 是否指向正确的服务地址。

Q2:提示 Model not found

确认 OPENAI_MODEL 填写的模型名称在你的服务商账户中可用。

Q3:浏览器端跨域报错

部分模型服务商不允许浏览器直接跨域调用,此时需要搭建一个简单的后端代理:

javascript 复制代码
// server.mjs(Node.js 代理示例)
import express from "express";
import { ChatOpenAI } from "@langchain/openai";
import cors from "cors";

const app = express();
app.use(cors());
app.use(express.json());

app.post("/api/chat", async (req, res) => {
  const model = new ChatOpenAI({
    model: process.env.OPENAI_MODEL,
    apiKey: process.env.OPENAI_API_KEY,
  });
  const response = await model.invoke(req.body.message);
  res.json({ reply: response.content });
});

app.listen(3000, () => console.log("代理服务已启动:http://localhost:3000"));

9. 总结

通过本教程,你已经完成了 LangChain.js 开发环境的搭建,并实现了 Node.js 与前端 React 两个场景下的 AI 对话示例。LangChain.js 还支持 Prompt 模板、链式调用、记忆管理、工具调用等高级特性,后续可以在此基础上继续深入探索。

10. 参考资源

相关推荐
King禅2 分钟前
JavaScript 调试实战指南:从 console.log 到 DevTools 深度运用
javascript
大文说跨境3 分钟前
多账号环境隔离方案技术选型:指纹浏览器、VPS 与云手机的三种架构对比
java·开发语言·前端
咕白m6254 分钟前
使用 C# 将 TIFF 转换为 PDF
前端·c#
全栈项目管理程序猿7 分钟前
ArcGIS JS 基础教程(28):图层渲染顺序管理
前端·javascript
YIAN9 分钟前
LangGraph 完全入门指南:从线性工作流到带中断恢复的有状态 Agent 编排
langchain·node.js·agent
huakoh10 分钟前
MCP 工具报错走哪条通道:三条探针的最小复现检查
前端
用户0333074139517 分钟前
ParadeDB 的 pg_search 0.26 把十词 BM25 搜索从 129ms 降到 29ms
前端
不爱说话郭德纲27 分钟前
从“点点点”到一键出包:我把 uni-app x Android 离线打包做成了脚本
android·前端·uni-app
扶风ff28 分钟前
练题簿在线免费刷题:创建个人任务,把刷题、听题和模考目标放到每天的学习中
开发语言·javascript·学习·小程序
Lstone736434 分钟前
从 Jetpack Compose 到 CMP:跨平台开发学习笔记
前端