9个AI开发必备JS开源库

我已经使用 Python 和 JavaScript 进行开发一段时间了,涉足 AI 和非 AI 项目。🌟

虽然 Python 凭借其庞大的生态系统无可否认地主导着 AI 开发领域,但 JavaScript/TypeScript 拥有自己独特的优势,使其成为强有力的竞争者:

  • 性能:由于其异步特性和非阻塞 I/O,JavaScript/TypeScript 在基于 Web 的应用程序中通常优于 Python。
  • 集成:与 Web 技术的无缝兼容性使创建 AI 驱动的 Web 应用程序变得更加容易,而无需切换语言。
  • 包管理:让我们面对现实——与 Python 的生态系统相比,JavaScript 的包管理(npm 和 Yarn)更加强大且用户友好。

虽然 Python 仍然是大多数 AI 库的首选(每个新库似乎都推出了原生 Python 支持),但 JavaScript 仍然在 Web 开发领域占据主导地位。

有了可靠的 JavaScript/TypeScript 支持,将 AI 集成到 Web 应用程序中变得毫不费力,从而改善了前端和后端的开发体验。

因此,如果你正在寻找开源 JavaScript 库来构建令人难以置信的 AI 驱动应用程序,那么你来对地方了!

我整理了一份必试库列表,以提升你的 AI 开发水平。

请随意探索他们的 GitHub 存储库,为你最喜欢的库做出贡献,并通过为他们的工作加星标来表示你的支持!

1、Composio — 以 10 倍的速度构建可靠的代理

创建可靠的 AI 代理可能是一个难题,尤其是当你的目标是自动化涉及 Discord、Slack 或日历等外部工具的工作流程时。

这就是 Composio 的闪光点!

Composio 是用于构建 AI 驱动应用程序的尖端工具。它使你能够与 CRM、生产力、人力资源和开发等各个垂直领域的 100 多种流行工具集成。这使你可以轻松地自动化复杂的工作流程。

Composio提供原生 JavaScript 支持,使将 AI 代理整合到你的应用中变得轻而易举。

要开始使用 Composio,请运行以下命令:

npm install composio-core openai 
#yarn add composio-core openai 
#pnpm add composio-core openai

定义一种方法让用户连接他们的 GitHub 帐户:

import { OpenAI } from "openai";
import { OpenAIToolSet } from "composio-core";

const toolset = new OpenAIToolSet({
  apiKey: process.env.COMPOSIO_API_KEY,
});

async function setupUserConnectionIfNotExists(entityId) {
  const entity = await toolset.client.getEntity(entityId);
  const connection = await entity.getConnection('github');

  if (!connection) {
      // If this entity/user hasn't already connected, the account
      const connection = await entity.initiateConnection(appName);
      console.log("Log in via: ", connection.redirectUrl);
      return connection.waitUntilActive(60);
  }

  return connection;
}

将所需工具添加到 OpenAI SDK 并将实体名称传递给 executeAgent 函数:

async function executeAgent(entityName) {
  const entity = await toolset.client.getEntity(entityName)
  await setupUserConnectionIfNotExists(entity.id);

  const tools = await toolset.get_actions({ actions: ["github_activity_star_repo_for_authenticated_user"] }, entity.id);
  const instruction = "Star a repo ComposioHQ/composio on GitHub"

  const client = new OpenAI({ apiKey: process.env.OPEN_AI_API_KEY })
  const response = await client.chat.completions.create({
      model: "gpt-4-turbo",
      messages: [{
          role: "user",
          content: instruction,
      }],
      tools: tools,
      tool_choice: "auto",
  })

  console.log(response.choices[0].message.tool_calls);
  await toolset.handle_tool_call(response, entity.id);
}

executeGithubAgent("joey")

Composio 与 LangChain、LlamaIndex 和 CrewAi 等流行框架无缝集成,让你能够轻松执行代码,而代理会处理工作。

有关详细指导,请浏览官方文档。对于高级用例,请查看存储库中的示例部分

2、Instructor-JS:从 LLM 中提取结构化数据

从 LLM 响应中提取有意义的信息曾经感觉很麻烦——直到现在。

Instructor-JS 提供了一种简单而结构化的方式来从 LLM 输出中提取和验证数据。它支持 Python 和 JavaScript,Zod 支持 JavaScript 中的数据验证。

入门很简单!立即深入了解并改变你处理 LLM 响应的方式:

npm i @instructor-ai/instructor zod openai

从 LLM 响应中提取信息:

import Instructor from "@instructor-ai/instructor";
import OpenAI from "openai"
import { z } from "zod"

const oai = new OpenAI({
  apiKey: process.env.OPENAI_API_KEY ?? undefined,
  organization: process.env.OPENAI_ORG_ID ?? undefined
})

const client = Instructor({
  client: oai,
  mode: "TOOLS"
})

const UserSchema = z.object({
  // Description will be used in the prompt
  age: z.number().describe("The age of the user"), 
  name: z.string()
})

// User will be of type z.infer<typeof UserSchema>
const user = await client.chat.completions.create({
  messages: [{ role: "user", content: "Jason Liu is 30 years old" }],
  model: "gpt-3.5-turbo",
  response_model: { 
    schema: UserSchema, 
    name: "User"
  }
})

console.log(user)
// { age: 30, name: "Jason Liu" }

有关更多信息,请访问官方文档页面。

3、CopilotKit:为 React 应用构建 AI Copilots

正在开发一个令人兴奋的项目并希望使用 AI 增强它?CopilotKit 就是你的最佳选择!

CopilotKit 是一种现成的解决方案,可让你将 AI 功能集成到你的应用程序或任何可访问的代码库 (OSS) 中。它提供多功能 React 组件(例如文本区域、弹出窗口、侧边栏和聊天机器人),以无缝地使用 AI 功能增强你的应用程序。

入门很容易!运行以下命令并为你的应用程序解锁新维度:

npm i @copilotkit/react-core @copilotkit/react-ui

要使用 CopilotKit,请确保在 CopilotKit 提供程序中包装与其交互的所有组件。首先集成 CopilotSidebar — 以后可以随时切换到其他 UI 提供商进行自定义:

"use client";
import { CopilotKit } from "@copilotkit/react-core";
import { CopilotSidebar } from "@copilotkit/react-ui";
import "@copilotkit/react-ui/styles.css";

export default function RootLayout({children}) {
  return (
    <CopilotKit publicApiKey=" the API key or self-host (see below)">
      <CopilotSidebar>
        {children}
      </CopilotSidebar>
    </CopilotKit>
  );
}

可以查看他们的官方文档以获取更多信息。

4、E2B:AI 应用的代码解释

构建需要 LLM 执行代码的 AI Web 应用程序?E2B 的代码解释器就是你的不二之选——AI 分析师和软件工程代理的终极解决方案。

E2B 提供安全的云环境,使 LLM 能够安全高效地执行代码。它使用熟悉的工具(如 GitHub 存储库和云浏览器)支持长时间运行的 AI 进程。

使用代码解释器 SDK,你可以在轻量级虚拟机(E2B 沙盒)中安全地运行 AI 生成的代码。沙盒包括一个 Jupyter 服务器,可通过 SDK 完全控制,以实现无缝 AI 代码执行。

使用以下命令立即开始使用 E2B:

npm i @e2b/code-interpreter

执行程序:

import { CodeInterpreter } from '@e2b/code-interpreter'

const sandbox = await CodeInterpreter.create()
await sandbox.notebook.execCell('x = 1')

const execution = await sandbox.notebook.execCell('x+=1; x')
console.log(execution.text)  // outputs 2

await sandbox.close()

有关如何使用 E2B 的更多信息,请访问其文档

5、LanceDB:适用于 AI 应用的高性能矢量数据库

矢量数据库对于 AI 应用至关重要,它使你能够存储、查询和管理非结构化数据(如文本、图像、视频和音频)的嵌入。

LanceDB 是一款顶级开源矢量数据库,具有原生 JavaScript 支持。它专为生产规模性能而设计,并具有以下功能:

  • 高速矢量搜索
  • 多模式支持
  • 零拷贝架构
  • 自动数据版本控制
  • GPU 加速查询

立即开始使用 LanceDB 构建更智能的 AI 应用:

npm install @lancedb/lancedb

创建和查询矢量数据库:

import * as lancedb from "@lancedb/lancedb";

const db = await lancedb.connect("data/sample-lancedb");
const table = await db.createTable("vectors", [
    { id: 1, vector: [0.1, 0.2], item: "foo", price: 10 },
    { id: 2, vector: [1.1, 1.2], item: "bar", price: 50 },
], {mode: 'overwrite'});

const query = table.vectorSearch([0.1, 0.3]).limit(2);
const results = await query.toArray();

// You can also search for rows by specific criteria without involving a vector search.
const rowsByCriteria = await table.query().where("price >= 10").toArray();

可以在官方文档中找到有关 LanceDB 的更多信息。

6、Trigger.Dev:可靠的后台作业

Trigger.Dev 是一个开源平台和 SDK,旨在轻松创建长时间运行的后台作业 — 不再超时!

使用 Trigger.Dev,你可以:

  • 编写标准异步代码,无缝部署,并完全避免超时问题。
  • 可靠地调用 AI API,使用自动重试和跟踪等功能实现更顺畅的执行。
  • 与现有 SDK 集成,轻松增强你的工作流程。

立即使用 Trigger.Dev 简化你的后台作业和 API 集成:

import { task } from "@trigger.dev/sdk/v3";
// Generate an image using OpenAI Dall-E 3
export const generateContent = task({
  id: "generate-content",
  retry: {
    maxAttempts: 3,
  },
  run: async ({ theme, description }: Payload) => {
    const textResult = await openai.chat.completions.create({
      model: "gpt-4o",
      messages: generateTextPrompt(theme, description),
    });

    if (!textResult.choices[0]) {
      throw new Error("No content, retrying…");
    }

    const imageResult = await openai.images.generate({
      model: "dall-e-3",
      prompt: generateImagePrompt(theme, description),
    });

    if (!imageResult.data[0]) {
      throw new Error("No image, retrying…");
    }

    return {
      text: textResult.choices[0],
      image: imageResult.data[0].url,
    };
  },
});

7、Vercel AI SDK:用 TypeScript 构建 AI 应用

如果你正在构建全栈 AI 驱动的应用程序,Vercel AI SDK 是你的首选工具包。

专为开发人员设计,支持 React、Vue、Next.js、SvelteKit 等框架。SDK 通过以下方式简化开发:

  • 抽象 LLM 提供程序
  • 消除聊天机器人的样板代码
  • 提供交互式可视化组件以创建丰富的用户体验

Vercel AI SDK 分为三个强大的模块:

  • AI SDK Core:用于生成文本、结构化数据和与 LLM 的工具交互的统一 API。
  • AI SDK UI:独立于框架的钩子,用于快速构建聊天和生成 UI。
  • AI SDK RSC:使用 React Server Components (RSC) 流式生成 UI 的库。

立即安装库并开始构建更智能的 AI Web 应用程序:

npm install ai

安装你选择的模型提供程序。

调用 OpenAI API:

import { generateText } from 'ai';
import { openai } from '@ai-sdk/openai'; // Ensure OPENAI_API_KEY environment variable is set

async function main() {
  const { text } = await generateText({
    model: openai('gpt-4-turbo'),
    system: 'You are a friendly assistant!',
    prompt: 'Why is the sky blue?',
  });

  console.log(text);
}

main();

有关 Vercel AI SDK 的更多信息,请访问其官方文档

8、Julep:AI 应用程序的托管后端

构建具有长期记忆的 AI 应用程序绝非易事。但 Julep(一个开源 AI 平台)轻松解决了这一挑战。

Julep 视为 AI 的 Firebase 或 Supabase。它提供:

  • 内存:用户管理以存储长期数据。
  • 知识:内置 RAG(检索增强生成)和上下文管理。
  • 工具:与 Composio 和其他平台集成。
  • 任务(即将推出!)

它还提供 JavaScript 支持,便于集成。

查看文档以了解更多信息!

9、Gateway:访问 200 多个 LLM 的单一 API

在构建 AI 应用程序时,管理来自不同提供商的多个 LLM 可能具有挑战性,尤其是每个提供商都有独特的 SDK。

Gateway 通过提供统一的 API 来访问 200 多个开源和闭源模型,从而简化了这一过程。它已准备好投入生产,具有以下功能:

  • 缓存
  • 回退
  • 重试
  • 超时
  • 负载平衡

此外,它还支持边缘部署以实现最小延迟,从而确保最佳性能。

要在本地运行 Gateway,只需在你的终端中执行以下命令,它就会在你的系统上启动服务:

npx @portkey-ai/gateway

有关更多信息,请参阅他们的 github 存储库

10、结束语

AI 开发的世界已经发展壮大,有了合适的工具,构建 AI 驱动的应用程序从未如此简单。从副驾驶和矢量数据库到代码解释器和托管后端,这些 JavaScript 库为你的项目带来了强大的功能。

  • Instructor-JS 简化了结构化数据提取,消除了工作中与 LLM 结合使用的麻烦。
  • CopilotKit 可将 AI 副驾驶员无缝集成到您的 React 应用程序中。
  • E2B 为运行 AI 代码和长期执行提供安全可靠的环境。
  • LanceDB 为 AI 模型的矢量数据提供高效管理。
  • Trigger.Dev 确保可靠、长时间运行的后台作业不会超时。
  • Vercel AI SDK 可帮助你使用 React 和 Vue 等各种框架轻松构建 AI Web 应用程序。
  • Julep 提供具有内存、知识和工具集成的开源后端解决方案。
  • Gateway 使用可用于生产的 API 统一了对 200 多个 AI 应用程序 LLM 的访问。

这些库不仅可以简化你的工作流程,还可以帮助你创建高性能、AI 驱动的应用程序。深入研究并使你的 AI 项目更智能、更快速、更高效!


原文链接:Top 9 Modern Open-source Js Libraries for AI Development 2025

汇智网翻译整理,转载请标明出处