虽然 Python 在 AI 领域有绝对优势,生态非常完整,但 JS/TS 也有它的独到之处,足以成为开发 AI 应用时的一匹“黑马”:

  • 性能优势:JavaScript/TypeScript 异步和非阻塞 I/O 的模式,在很多基于 Web 的场景里,性能表现并不逊色。
  • 无缝集成:想把 AI 功能嵌入到网页端,JS/TS 跟前端技术能完美配合,无需不断切换语言。
  • 包管理:npm、Yarn 等工具用起来很顺手,管理依赖和发布包都相对便捷。

所以,尽管 Python 仍是各种 AI 库的“官方首选”(大部分新库都会先出 Python 版本),但在 Web 开发领域,JavaScript 的地位依然难以撼动。

如果你正打算在前端或后端用 JS/TS 来做 AI 应用,这里整理了 9 个我认为最有价值的开源库,可以帮你大幅提升开发效率!可以去它们的 GitHub 仓库看看,贡献代码、提 issue、或者顺手点个 Star 支持一下。


1. Composio 👑 —— 快速构建可靠的 AI Agent

很多人想用 AI Agent 来自动执行外部工具(比如 Discord、Slack、Calendar 等)的复杂工作流,但发现做起来并不轻松。Composio 就是专门为此而生的。

image.png

Composio 是一个支持多平台集成的 AI 开发工具,和 100+ 常见平台无缝连接,比如 CRM、效率工具、HR、开发者生态等,能轻松打造自动化的复杂工作流。它本身提供了原生的 JavaScript 支持,只要安装它就能在你的 JS/TS 项目里调用 AI Agent 相关功能。

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

下面举个简单的例子,假设我们想让用户连接他们的 GitHub 账号,然后自动帮他们在 GitHub 上给某个仓库点 Star:

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) {
    const connection = await entity.initiateConnection(appName);
    console.log("Log in via: ", connection.redirectUrl);
    return connection.waitUntilActive(60);
  }

  return connection;
}

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);
}

executeAgent("joey");

Composio 还能无缝支持 LangChain、LlamaIndex、CrewAi 等热门框架,让 Agent 直接帮你执行代码。可以去它的官方文档或仓库查看更详细的示例和高级玩法。

地址:https://github.com/composiohq/composio?utm_source=dev-to


2. Instructor-JS —— 用结构化方式提取 LLM 数据

过去从大型语言模型 (LLM) 的输出里提取信息一直很麻烦,总要想办法解析并校验数据。Instructor-JS 则提供了一个简洁的解决方案,让你可以用结构化的方式抽取并验证 LLM 返回的结果。在 JavaScript 里,它用 Zod 进行数据校验,也同时支持 Python 环境。

只需要几行代码就能把无结构的 LLM 输出,变得有迹可循。示例:

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

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

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

const UserSchema = z.object({
  age: z.number().describe("The age of the user"),
  name: z.string()
});

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" }

去它的官方文档或仓库看看,可以更灵活地处理各种数据提取与验证场景。

地址:https://github.com/instructor-ai/instructor-js


3. CopilotKit —— 一键打造 React AI 助手

如果你正在做一个需要嵌入 AI 助手的 React 项目,可以试试 CopilotKit。它封装了一套非常方便的 React 组件,比如文本框、聊天面板、侧边栏等,让你几乎零配置就能给应用添加 AI 功能。

image.png

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

示例:引入一个 CopilotSidebar,再包裹进 CopilotKit Provider。这样就能在你的应用里自由切换聊天和助手功能,还能自己定制 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="你的 API Key 或者自行托管">
      <CopilotSidebar>
        {children}
      </CopilotSidebar>
    </CopilotKit>
  );
}

更多细节和定制方法,可以去它的官方文档查看。

地址:https://github.com/CopilotKit/CopilotKit


4. E2B —— 为 AI 应用提供安全的代码执行环境

有些 AI Web 应用场景下,LLM 需要实时执行代码,比如 AI 数据分析、软件开发助理等。E2B 的 Code Interpreter 就是为此准备的:它提供了一个安全可控的云端沙盒,让 LLM 可以“动手”跑代码,而且支持长时间运行、调试、导入 GitHub 仓库等。

image.png

使用它的 Code Interpreter SDK,可以轻松把 AI 生成的代码放在 E2B 的 Sandbox 上跑,甚至包含 Jupyter Server,能做各种复杂计算。安装方法也很简单:

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); // 输出 2

await sandbox.close();

如果你想让 GPT-4 或其他模型帮你写代码,然后自动执行检验,可以考虑在你的后端或服务端嵌入 E2B,稳定又安全。

地址:https://github.com/e2b-dev/E2B


5. LanceDB —— 高性能向量数据库

很多 AI 应用需要存储、检索文本、图像、语音等内容的嵌入向量,向量数据库就成了必不可少的组件。LanceDB 是一个速度快、功能全的开源向量数据库,并且直接支持 JavaScript。

image.png

它拥有如下特性:

  • 高速向量检索
  • 多模态支持
  • Zero-copy 架构
  • 自动数据版本管理
  • GPU 加速查询

安装方法:

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();
console.log(results);

适用于做相似度检索、推荐系统或多模态检索等场景。可去官方文档了解更多。

地址:https://github.com/lancedb/lancedb


6. Trigger.Dev —— 长时后台任务,不再担心超时

Trigger.Dev 是一个开源平台与 SDK,主打“长时间运行的异步后台任务”,让你再也不用因为超时问题而绞尽脑汁。它还支持自动重试、可视化追踪与调试,和各种 AI API 一起配合非常顺手。

image.png

import { task } from "@trigger.dev/sdk/v3";
// 用 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,
    };
  },
});

如果你有一些调用 AI 接口可能耗时几十秒甚至更长的任务,Trigger.Dev 会让它们执行得更加平稳。

地址:https://github.com/triggerdotdev/trigger.dev


7. Vercel AI SDK —— 全栈 TypeScript AI 开发套件

想用 Next.js、React、Vue 或 SvelteKit 来搭配 AI,Vercel AI SDK 几乎是当下最整合友好的选择之一。它有三大模块:

  • AI SDK Core:统一封装了对各种 LLM 的调用接口。
  • AI SDK UI:提供了无框架限制的 hooks 来快速构建聊天或其他交互式的生成式 UI。
  • AI SDK RSC:让你在 React 服务端组件 (RSC) 里做流式的生成式渲染。

安装方法也很简单:

npm install ai

然后选择你喜欢的模型服务,比如 OpenAI,做一次示例调用:

import { generateText } from 'ai';
import { openai } from '@ai-sdk/openai'; // 记得设置 OPENAI_API_KEY

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();

可以去它的官方文档查看更多在前端或全栈场景下的最佳实践。

地址:https://github.com/vercel/ai


8. Julep —— AI 应用的托管式后端

如果你想构建拥有“长期记忆”的 AI 应用,那么 Julep(一个开源的 AI 平台)就能派上用场。它的定位类似“给 AI 用的 Firebase/Supabase”,提供了以下功能:

  • Memory:支持用户管理、存储各种交互上下文。
  • Knowledge:自带 RAG(检索增强生成)和上下文管理。
  • Tools:无缝对接 Composio 或其他工具。
  • Tasks(即将上线)

配合 JS/TS 也很简单,更多细节可去它的仓库或文档查看。

地址:https://github.com/julep-ai/julep


9. Gateway —— 一条 API 同时接入 200+ 种 LLM

image.png

最后,如果你的应用需要集成好几个 LLM 提供商的模型,或者你想在服务端支持多种大模型做负载均衡,那么 Gateway 可以让你一次性搞定。一条统一的 API,就能访问 200+ 个开放或闭源的模型,而且还自带:

  • 缓存、重试、超时等高级特性
  • Fallback 机制
  • 负载均衡
  • 支持 Edge 部署,获取更低延迟

本地快速启动:

npx @portkey-ai/gateway

然后就能用统一的方式对接各种 LLM。官方 GitHub 有详细的配置和使用示例。

地址:https://github.com/portkey-ai/gateway?source=post_page-----c29524999bcf---------------------------------------


总结

AI 开发生态日新月异,要想快速构建强大的 AI 应用,这些 JavaScript 库值得你优先关注:

  1. Composio —— 一站式集成多平台、快速构建 AI Agent
  2. Instructor-JS —— 结构化提取并校验 LLM 输出
  3. CopilotKit —— 在 React 项目中快速嵌入 AI 助手
  4. E2B —— 安全的云端代码执行环境
  5. LanceDB —— 高性能向量数据库
  6. Trigger.Dev —— 稳定且可重试的长时异步任务
  7. Vercel AI SDK —— 全栈 TS AI 开发首选
  8. Julep —— 为 AI 提供类似 Firebase 的后端支持
  9. Gateway —— 一个接口整合 200+ LLM,便于快速扩展

这些库不仅能简化你的开发流程,也能让你的 AI 应用更灵活、更高效。可以试着逐一体验,寻找最适合自己业务需求的组合。

你平时在开发中还用过哪些不错的 AI 工具或框架?欢迎分享心得,让我们一起把 AI 产品做得更好!

首发于公众号 大迁世界,欢迎关注。📝 每周一篇实用的前端文章 🛠️ 分享值得关注的开发工具 ❓ 有疑问?我来回答

本文 GitHub https://github.com/qq449245884/xiaozhi 已收录,有一线大厂面试完整考点、资料以及我的系列文章。


王大冶
68.1k 声望105k 粉丝