LangChain.js入门:AI应用开发的新时代
从不屑到佩服我见证了AI领域的飞速发展。今天我要向各位介绍一个改变游戏规则的工具LangChain.js。它不仅仅是一个库更是构建下一代AI应用的基石。什么是LangChain.jsLangChain.js是LangChain的JavaScript/TypeScript版本是一个为大语言模型(LLM)应用开发而设计的框架。如果你曾经想过如何将ChatGPT这样的AI能力无缝集成到你的应用中LangChain.js就是你的不二之选。简单来说LangChain.js就像是AI能力的乐高积木让你能够轻松组装出复杂的AI应用。为什么选择LangChain.js当我第一次接触LangChain.js时我的反应是这不就是我一直在寻找的东西吗作为一个经常与JavaScript打交道的开发者我深知在JS生态中构建AI应用的挑战。以下是LangChain.js的几大优势原生JavaScript支持不需要Python环境直接在Node.js或浏览器中运行模块化设计像搭积木一样构建你的AI应用多模型支持OpenAI、Anthropic、Hugging Face等应有尽有丰富的工具集从文本处理到向量数据库一应俱全活跃的社区问题解决和最佳实践触手可及LangChain.js vs Python版本那么LangChain.js和Python版本有什么区别呢这是我经常被问到的问题。虽然两者在核心概念上保持一致但LangChain.js针对JavaScript生态进行了优化使用Promise而非异步/等待语法与Node.js和前端框架的无缝集成针对JavaScript开发者的API设计更轻量级的依赖环境准备在开始LangChain.js之旅前你需要准备# 创建新项目 mkdir my-langchain-app cd my-langchain-app npm init -y # 安装LangChain 核心库提供langchain的基本能力 npm install langchain/core # 我们以使用deepseek llm为例所以安装langchain/deepseek提供与deepseek交互的能力 npm install langchain/deepseek随后在项目中找到package.json添加 type为module配置为让项目支持ES module形式的模块组织形式# /package.json { ...其他配置 type: module, }你的第一个LangChain.js应用让我们创建一个简单的应用向deepseek的模型提问。首先在项目文件夹下创建入口文件index.js编写应用代码import { ChatDeepSeek } from langchain/deepseek; // 初始化 DeepSeek 模型 const llm new ChatDeepSeek({ // DeepSeek API Key apiKey: sk-xxxxxxxx, // 控制回答随机性 // 0最稳定适合代码、数学 // 0.7平衡适合日常聊天常用 // 越大回答越有创造性 temperature: 0.7, // 使用的模型 // deepseek-chat通用聊天模型 // deepseek-coder代码模型 // deepseek-reasoner推理模型 modelName: deepseek-chat, // 最大输出 Token 数量 // 越大回答越长 maxTokens: 100, }); async function main() { // 调用模型发送问题 const result await llm.invoke( 解释一下量子计算的基本原理用通俗的语言 ); // 打印完整 AIMessage 对象 console.log(result); // 只打印 AI 回复内容 console.log(result.content); } // 执行函数 main();2. 完成代码编写可以运行你的AI 应用了AIMessage { // AI 消息的唯一 ID id: a5c34373-4b81-4dea-b9a3-b1dbfa7d14bd, // AI 实际返回的文本内容 content: 好的我们用最通俗的方式来聊聊量子计算。\n\n想象一下你正在玩一个**迷宫游戏**要找出口。\n\n**传统计算机经典计算机** 就像一个**很勤奋但一次只能走一条路**的探险家。他站在岔路口先走左边如果走不通就退回来再走右边。他速度很快但本质上是一个一个地试直到找到出口。\n\n**量子计算机** 则像一个\*\*会“分身术”的探险, // 额外参数 additional_kwargs: {}, // 模型返回的元数据 response_metadata: { // Token 使用情况 tokenUsage: { // 输入 Token 数量 promptTokens: 14, // 输出 Token 数量 completionTokens: 100, // 输入 输出 Token 总数 totalTokens: 114 }, // 生成结束的原因 // length 表示达到 maxTokens 限制导致输出被截断 finish_reason: length, // 模型提供商 model_provider: deepseek, // 实际使用的模型 model_name: deepseek-v4-flash, // 更详细的 Token 使用情况 usage: { // 输入 Token prompt_tokens: 14, // 输出 Token completion_tokens: 100, // 总 Token total_tokens: 114, // 输入 Token 的详细信息 prompt_tokens_details: { // 缓存命中的 Token cached_tokens: 0, // Prompt Cache 命中的 Token prompt_cache_hit_tokens: 0, // Prompt Cache 未命中的 Token prompt_cache_miss_tokens: 14 } }, // DeepSeek 当前模型/服务版本相关的指纹 system_fingerprint: fp_a18b46594c_prod0820_fp8_kvcache_20260402 }, // 工具调用相关的信息 // [] 表示本次没有调用工具 tool_calls: [], // 无效的工具调用 // [] 表示没有无效工具调用 invalid_tool_calls: [], // LangChain 对 Token 使用情况的统一记录 usage_metadata: { // 输出 Token output_tokens: 100, // 输入 Token input_tokens: 14, // 总 Token total_tokens: 114, // 输入 Token 详细信息 input_token_details: { // 从缓存读取的 Token cache_read: 0 }, // 输出 Token 详细信息 output_token_details: {} } }就这么简单几行代码你就已经创建了一个基础的与AI交互的应用。结语这只是LangChain.js的冰山一角。在接下来的系列文章中我们将深入探讨LangChain.js的各个模块从链式调用到代理系统从记忆机制到工具集成。无论你是想构建一个智能客服机器人还是开发一个AI驱动的内容生成平台LangChain.js都能为你提供所需的工具和抽象。记住AI应用开发的未来不在于谁能访问最强大的模型而在于谁能最巧妙地组合和应用这些模型。而LangChain.js正是这场游戏的重要玩家。