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正是这场游戏的重要玩家。

相关新闻

基于协同过滤算法的SpringBoot+Vue美食推荐平台全栈实战

基于协同过滤算法的SpringBoot+Vue美食推荐平台全栈实战

你有没有过这样的经历:刷到一个美食分享平台,看着精美的菜品图片和诱人的描述,却总觉得推荐给你的内容差那么点意思?要么是重复推送你已经收藏过的菜系,要么就是完全不符合你的口味。这背后,往往是因为平台…

2026/10/24 18:52:00 阅读更多 →
Redis核心特性与生产环境实践指南

Redis核心特性与生产环境实践指南

1. Redis初探:为什么它成为开发者必备技能? 2009年,当Salvatore Sanfilippo为了解决他公司的实时日志分析问题而开发出Redis时,可能没想到这个用ANSI C编写的小工具会成为全球最受欢迎的键值数据库之一。作为开发者,我…

2026/10/25 6:52:36 阅读更多 →
提升内容可读性:灰色文本框的设计原理与多平台实现指南

提升内容可读性:灰色文本框的设计原理与多平台实现指南

1. 从“白纸黑字”到“视觉焦点”:为什么我们需要灰色文本框? 写博客、做笔记、整理文档,你有没有遇到过这样的场景:一大段文字里,有那么几行特别重要,你想让读者一眼就看到;或者有一段代码、一…

2026/10/25 13:53:07 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/10/25 11:19:54 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/10/25 22:36:10 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/26 4:52:12 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/10/25 10:02:42 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/10/26 5:00:37 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/10/26 3:16:46 阅读更多 →

日新闻

周新闻

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/25 10:02:43 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/25 13:21:54 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/26 8:34:37 阅读更多 →