Nodejs AI SDK盘点

367 阅读5分钟

哈喽哇!我是小不不简说的不。在代码世界疯狂蹦跶的 “非资深选手”🙋‍♂️!主打一个*“踩坑我来,避坑你学”*。毕竟独乐乐不如众乐乐,让大家少走弯路,才是咱的终极使命✨~

今天盘点几个的 Node.js AI SDK。

流行趋势分析

packagegithub starnpm weekly downloads
openai9.5k⭐️470w
langchainjs15.1k⭐️118w
anthropic1.1k⭐️170w

1. OpenAI SDK

介绍

OpenAI 官方的 Node.js 库仓库,为 TypeScript 和 JavaScript 开发者提供便捷访问 OpenAI REST API 的方式。

安装

npm install openai

使用示例

import OpenAI from 'openai';

const client = new OpenAI({
  apiKey: process.env['OPENAI_API_KEY'], // This is the default and can be omitted
});

const completion = await client.chat.completions.create({
  model: 'gpt-4o',
  messages: [
    { role: 'developer', content: 'Talk like a pirate.' },
    { role: 'user', content: 'Are semicolons optional in JavaScript?' },
  ],
});

console.log(completion.choices[0].message.content);

流式输出示例

import OpenAI from 'openai';

const client = new OpenAI({
  apiKey: process.env['OPENAI_API_KEY'], // This is the default and can be omitted
});

const stream = await client.responses.create({
  model: 'gpt-4o',
  input: 'Say "Sheep sleep deep" ten times fast!',
  stream: true,
});

for await (const event of stream) {
  console.log(event);
}

2. LangChain

介绍

如果你厌倦了传统的 NLP 工具,不妨试试 LangChain。这是一款让人眼前一亮的新工具,能够轻松完成各种复杂的 NLP 任务。它的理念是:让技术更简单,让工作更有趣。

安装

npm i @langchain/openai

使用示例

import { ChatOpenAI } from "@langchain/openai";

const model = new ChatOpenAI({
  apiKey: process.env.OPENAI_API_KEY,
  modelName: "gpt-4-1106-preview",
});
const response = await model.invoke(new HumanMessage("Hello world!"));

流式输出示例

import { ChatOpenAI } from "@langchain/openai";

const model = new ChatOpenAI({
  apiKey: process.env.OPENAI_API_KEY,
  modelName: "gpt-4-1106-preview",
});
const response = await model.stream(new HumanMessage("Hello world!"));

3. Anthropic

介绍

Anthropic 官方提供的用于与 Anthropic API 进行交互的 TypeScript 库。它提供了便捷的方式来访问 Anthropic 的 REST API,支持多种功能和不同的运行时环境

安装

npm i @anthropic-ai/sdk

使用示例

import Anthropic from '@anthropic-ai/sdk';

const client = new Anthropic({
  apiKey: process.env['ANTHROPIC_API_KEY'], // This is the default and can be omitted
});

const message = await client.messages.create({
  max_tokens: 1024,
  messages: [{ role: 'user', content: 'Hello, Claude' }],
  model: 'claude-sonnet-4-20250514',
});

console.log(message.content);

流式输出示例

import Anthropic from '@anthropic-ai/sdk';

const client = new Anthropic({
  apiKey: process.env['ANTHROPIC_API_KEY'], // This is the default and can be omitted
});

const stream = await client.messages.create({
  max_tokens: 1024,
  messages: [{ role: 'user', content: 'Hello, Claude' }],
  model: 'claude-sonnet-4-20250514',
  stream: true,
});
for await (const messageStreamEvent of stream) {
  console.log(messageStreamEvent.type);
}

tokens 计算示例

const message = await client.messages.create(...);
console.log(message.usage);
// { input_tokens: 25, output_tokens: 13 }

总结

维度openai-nodelangchainjsanthropic-sdk-typescript
核心定位OpenAI 官方 API 客户端(专注于 OpenAI 模型)通用 LLM 应用开发框架(支持多模型集成)Anthropic 官方 API 客户端(专注于 Claude 模型)
核心功能封装 OpenAI API(对话、嵌入、函数调用等)提供链(Chains)、代理(Agents)、记忆(Memory)等抽象,支持多模型接入封装 Anthropic API(对话、流式响应、工具调用等)
模型支持仅支持 OpenAI 模型(GPT-3.5/4、DALL·E 等)支持 OpenAI、Anthropic、Google 等数十种模型仅支持 Anthropic 模型(Claude 2/3 系列)
优势1. 官方维护:与 OpenAI API 同步更新,兼容性最佳
2. 轻量高效:无冗余依赖,适合直接调用 OpenAI 模型
3. 类型完善:TypeScript 类型定义精确,开发体验流畅
4. 功能对齐:第一时间支持 OpenAI 新特性(如 GPT-4o 多模态)
1. 生态丰富:提供完整的 LLM 应用开发工具链(链、代理、检索增强等)
2. 跨模型兼容:一套代码可切换多模型,降低迁移成本
3. 场景化工具:内置文档加载、向量存储等模块,适合复杂应用(如知识库问答)
4. 社区活跃:插件和第三方集成丰富(如与数据库、API 的连接)
1. 官方优化:针对 Claude 模型特性深度适配(如长上下文支持)
2. 多环境兼容:支持 Node.js、Cloudflare Workers 等边缘环境
3. 流式体验:流式响应处理流畅,适合实时交互场景
4. 工具调用:原生支持 Claude 的工具使用能力,与模型功能深度绑定
劣势1. 单一模型依赖:仅支持 OpenAI,无法切换其他模型
2. 功能局限:无高级抽象(如记忆、代理),需手动实现复杂逻辑
1. 学习成本高:概念较多(链、代理等),入门门槛高
2. 冗余性:仅需调用单一模型时,框架 overhead 较大
3. 版本兼容问题:快速迭代可能导致 API 不稳定
1. 模型单一:仅支持 Claude,无法扩展至其他模型
2. 生态较窄:无额外工具链,复杂应用需自行搭建(如记忆、检索)
适用场景- 仅需调用 OpenAI 模型的场景(如聊天机器人、文本生成)
- 追求轻量和官方兼容性的场景
- 多模型切换的应用(如模型对比、容灾备份)
- 复杂 LLM 应用(如智能代理、检索增强生成 RAG)
- 需要整合外部工具(数据库、API)的场景
- 仅需调用 Claude 模型的场景(如长文档处理、合规场景)
- 边缘环境部署(如 Cloudflare Workers)
典型用户专注 OpenAI 生态的开发者,需快速接入 GPT 模型构建复杂 LLM 应用的团队,需多模型支持和工具链专注 Claude 模型的开发者,尤其是依赖长上下文能力的场景

使用建议

  • 若需快速接入单一模型(如仅用 GPT 或 Claude),优先选官方客户端(openai-node/anthropic-sdk-typescript),轻量且兼容性最佳;
  • 若需开发复杂 LLM 应用(如 RAG、多模型切换、智能代理),选 langchainjs,其工具链能大幅降低开发成本;
  • 若需边缘环境部署(如 Cloudflare Workers),anthropic-sdk-typescript 的多环境支持更有优势;
  • 若需第一时间使用模型新特性(如 GPT-4o 多模态、Claude 3 工具调用),官方客户端更新速度快于 langchainjs

写到最后

💡 温馨提示:本文章可随意 “转发扩散”,让更多小伙伴加入 “少踩坑联盟”!毕竟独坑坑不如众坑坑…… 啊不,是独乐乐不如众乐乐😂!