我已經使用 Python 和 JavaScript 進行開發,從事人工智慧和非人工智慧專案已經有一段時間了。

我注意到與人工智慧開發相關的生態系統很大程度上偏向 Python。然而,Javascript/Typescript 比 Python 有一些明顯的優點。

  • 效能:JavaScript/TypeScript 由於其非同步特性和非阻塞 I/O,通常在基於 Web 的應用程式中表現更好。

  • 整合:與 Web 技術更輕鬆地集成,使建立人工智慧驅動的 Web 應用程式更加簡單,無需切換語言。

  • 套件管理:說實話:Javascript 的套件管理優於 Python。

目前,人工智慧領域充滿了 Python 函式庫。所有其他新函式庫都附帶原生 Python 支援。

然而,我們知道 JS 仍然統治著 Web 開發領域,並且擁有 JS/TS 支援使得將 AI 整合到 Web 應用程式中變得非常容易,從而改善前端和後端開發體驗。

因此,如果您也在尋找 JS 庫來開發 AI 應用程式,那就不用再猶豫了。我整理了一份令人垂涎的開源庫列表,用於建立出色的人工智慧應用程式。

尤達大師

請隨意探索他們的 GitHub 儲存庫,為您最喜歡的儲存庫做出貢獻,並透過為儲存庫加註星標來支援他們。


  1. Composio 👑 - 建造可靠的代理速度提高 10 倍

如果您探索過這個領域,您就會知道建立可靠的 AI 代理程式可能非常具有挑戰性,特別是如果您想要自動化涉及 Discord、Slack、Calendar 等外部應用程式的工作流程。

這就是 Composio 發揮作用的地方。他們正在建立用於建立人工智慧驅動的應用程式的工具基礎設施。

您可以將 100 多種跨業務垂直領域的流行工具(例如 CRM、生產力、開發、人力資源等)與 AI 代理集成,以自動化複雜的工作流程。

它們為 Javascript 提供本機支援。

您可以透過執行以下命令開始使用 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 等著名框架搭配使用。

有關更多訊息,請存取官方文件,有關更複雜的示例,請參閱存儲庫的示例部分。

GIF 構圖

https://dub.composio.dev/composio 為 Composio.dev 儲存庫加註星標 ⭐


  1. Instructor-JS -從LLMs中提取結構化資料

我總是發現從LLMs回覆中提取有用的訊息是一件苦差事。但現在不再了。

講師提供了一種簡單且結構化的方法來提取和驗證 LLM 答案。

它也對 Python 和 Javascript 提供本機支援。對於 Javascript,它使用 Zod 進行資料驗證。

以下是您如何快速開始使用它的方法。

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

欲了解更多訊息,請存取官方文件頁面。

教練 GIF

https://github.com/instructor-ai/instructor-js 為 Instructor-Js 儲存庫加註星標 ⭐


  1. CopilotKit - 為 React 應用程式建立 AI Copilot

如果您有一個令人興奮的專案或正在開發一個新專案並希望為其配備 AI 功能,那麼 CopilotKit 就是您需要的解決方案。

它是一個現成的 Copilot,您可以將其與您的應用程式或您可以存取的任何程式碼 (OSS) 整合。

它提供文字區域、彈出視窗、側邊欄和聊天機器人等 React 元件,以透過 AI 功能增強任何應用程式。

使用以下命令開始使用 CopilotKit。

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

您可以查看他們的文件以獲取更多資訊。

哪裡可以辦 GIF

https://github.com/CopilotKit/CopilotKit 為 CopilotKit 儲存庫加註星標 ⭐


  1. E2B - AI 應用程式的程式碼解釋

如果您正在建立需要 LLM 執行程式碼的 AI Web 應用程式(例如 AI 分析師和 SWE 代理程式),那麼 E2B 的程式碼解釋器是您的首選。

它為LLMs執行程式碼提供了安全可靠的雲端環境。

它允許人工智慧使用與人類相同的工具(例如 GitHub 儲存庫和雲端瀏覽器)長期安全執行。

程式碼解釋器 SDK 可讓您在安全的小型虛擬機器( E2B 沙箱)中執行 AI 產生的程式碼,以執行 AI 程式碼。沙箱內有一個 Jupyter 伺服器,您可以透過其 SDK 進行控制。

使用以下命令開始使用 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 的更多訊息,請存取他們的官方文件

電子2B

https://github.com/e2b-dev/E2B 為 E2B 儲存庫加註星標 ⭐


  1. LanceDB - 用於人工智慧應用的高效能向量資料庫

如果沒有向量資料庫,人工智慧應用程式是不完整的。它們可協助您儲存、查詢和管理文字、圖像、視訊和音訊等非結構化資料的嵌入。

LanceDB 是最好的開源向量資料庫之一,具有原生 Javascript 支援。

它提供生產規模的向量搜尋、多模式支援、零複製、自動資料版本控制、GPU 驅動的查詢等。

開始使用 LanceDB。

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 的更多資訊。

哪裡可以辦 GIF

https://github.com/lancedb/lancedb 為 LanceDB 儲存庫加註星標 ⭐


  1. Trigger.Dev

Trigger.Dev 是一個開源平台和 SDK,可讓您建立長時間執行的後台作業,沒有逾時。編寫正常的非同步程式碼、部署,並且永遠不會逾時。

它們還可以讓您可靠地呼叫 AI API,無需超時、自動重試和追蹤。您可以使用現有的 SDK。

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

觸發開發 GIF

https://github.com/triggerdotdev/trigger.dev 為 Trigger.Dev 儲存庫加註星標 ⭐


  1. Vercel AI SDK - 在 Typescript 中建立 AI Web 應用程式

如果我現在要建立一個全端 AI 驅動的應用程式,我會立即選擇 Vercel AI SDK。

它是一個工具包,旨在讓開發人員使用 React、Vue、NEXT、Sveltekit 等來建立 AI Web 應用程式。

Vercel AI SDK 抽象化了 LLM 供應商,消除了用於建立聊天機器人的樣板程式碼,並提供互動式視覺化元件以提供豐富的客戶體驗。

它由三個部分組成,

  • AI SDK Core :用於產生文字、結構化資料以及與LLMs進行工具互動的單一 API。

  • AI SDK UI :獨立於框架的掛鉤,用於快速建立聊天和產生 UI。

  • AI SDK RSC :使用 React Server Components (RSC) 串流傳輸產生 UI 的函式庫。

首先,安裝該庫。

npm install ai

安裝您選擇的模型提供者。

npm install @ai-sdk/openai

呼叫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 的更多訊息,請存取他們的文件

韋爾切萊 GIF

https://github.com/vercel/ai 為 Vercel AI SDK 儲存庫加註星標 ⭐


  1. Julep - AI 應用程式的託管後端

至少可以說,破解具有長期記憶的人工智慧應用程式是一項艱鉅的任務。

開源人工智慧平台 Julep 正在解決同樣的問題。

它就像用於 AI 的 Firebase 或 Supabase,提供記憶體(用戶管理)、知識(內建 RAG 和上下文管理)、工具(與 Composio 等整合)以及很快的任務。

他們還提供 JavaScript 支援。

查看他們的文件以了解更多資訊。

去朱利普 GIF

https://github.com/julep-ai/julep 為 Julep AI 儲存庫加註星標 ⭐


  1. 網關 - 單一 API 可存取 200 多個 LLM

要建立人工智慧應用程式,您通常需要來自不同提供者的多個LLMs。然而,LLM 提供者擁有自己的 SDK,這使得管理多個提供者變得困難。

網關透過統一的 API 簡化了對 200 多個開源和閉源模型的請求。它還可以投入生產,支援快取、回退、重試、逾時和負載平衡,並且可以進行邊緣部署以最小化延遲。

要在本地執行它,請在終端機中執行以下命令,它將在本機系統上啟動網關:

npx @portkey-ai/gateway

有關更多訊息,請參閱他們的存儲庫

網關 GIF

https://github.com/portkey-ai/gateway 為 Gateway 儲存庫加註星標 ⭐


您是否使用或建立了其他一些很酷的人工智慧工具或框架?

請在評論中讓我了解它們:)


原文出處:https://dev.to/composiodev/9-must-know-open-source-javascript-libraries-for-mastering-ai-development-2i9m

按讚的人:

共有 0 則留言