虽然 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 就是专门为此而生的。
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 功能。
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 仓库等。
使用它的 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。
它拥有如下特性:
- 高速向量检索
- 多模态支持
- 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 一起配合非常顺手。
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
最后,如果你的应用需要集成好几个 LLM 提供商的模型,或者你想在服务端支持多种大模型做负载均衡,那么 Gateway 可以让你一次性搞定。一条统一的 API,就能访问 200+ 个开放或闭源的模型,而且还自带:
- 缓存、重试、超时等高级特性
- Fallback 机制
- 负载均衡
- 支持 Edge 部署,获取更低延迟
本地快速启动:
npx @portkey-ai/gateway
然后就能用统一的方式对接各种 LLM。官方 GitHub 有详细的配置和使用示例。
总结
AI 开发生态日新月异,要想快速构建强大的 AI 应用,这些 JavaScript 库值得你优先关注:
- Composio —— 一站式集成多平台、快速构建 AI Agent
- Instructor-JS —— 结构化提取并校验 LLM 输出
- CopilotKit —— 在 React 项目中快速嵌入 AI 助手
- E2B —— 安全的云端代码执行环境
- LanceDB —— 高性能向量数据库
- Trigger.Dev —— 稳定且可重试的长时异步任务
- Vercel AI SDK —— 全栈 TS AI 开发首选
- Julep —— 为 AI 提供类似 Firebase 的后端支持
- Gateway —— 一个接口整合 200+ LLM,便于快速扩展
这些库不仅能简化你的开发流程,也能让你的 AI 应用更灵活、更高效。可以试着逐一体验,寻找最适合自己业务需求的组合。
你平时在开发中还用过哪些不错的 AI 工具或框架?欢迎分享心得,让我们一起把 AI 产品做得更好!
首发于公众号 大迁世界,欢迎关注。📝 每周一篇实用的前端文章 🛠️ 分享值得关注的开发工具 ❓ 有疑问?我来回答
本文 GitHub https://github.com/qq449245884/xiaozhi 已收录,有一线大厂面试完整考点、资料以及我的系列文章。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。