阿川私房教材:學程式,拿 offer!

63 個專案實戰,直接上手!
無需補習,按步驟打造你的面試作品。

立即解鎖你的轉職秘笈

我一直與許多公司合作,當我告訴你對人工智慧驅動的解決方案有巨大的需求時,請相信我。從Google到 Meta,所有科技巨頭都在大力投資人工智慧模型。

現在是建立人工智慧驅動的應用程式以利用不斷增長的需求的最佳時機,但為其找到合適的工具可能具有挑戰性。

我編譯了八個開源工具來幫助您輕鬆開發由人工智慧驅動的 SaaS 應用程式。

惡搞之家彼得跳舞


  1. Composio 👑:適用於 AI 代理程式的一體化工具解決方案

我已經建立了自己的人工智慧驅動的 SaaS 應用程式,請相信我:加入與人工智慧代理的多個整合以實現工作流程自動化比聽起來更具挑戰性。

Composio 是該領域唯一的解決方案。它擁有 90 多種跨行業垂直的工具和集成,從 CRM、HRM、社交媒體到開發和生產力。

您可以將這些工具與 AI 模型連接起來,讓它們自動化工作流程,例如檢視 PR 和處理 Discord 上的客戶查詢。

合成工具目錄

它代表您的使用者處理複雜的使用者驗證和授權,例如 OAuth、JWT 和 API 金鑰,以便您可以將時間花在其他重要的事情上。

您可以透過使用pip安裝 Composio 來快速開始使用它。

pip install composio-core

新增 GitHub 整合。

composio add github

Composio 代表您處理使用者身份驗證和授權。

以下是如何使用 GitHub 整合來啟動儲存庫。

from openai import OpenAI
from composio_openai import ComposioToolSet, App

openai_client = OpenAI(api_key="******OPENAIKEY******")

# Initialise the Composio Tool Set
composio_toolset = ComposioToolSet(api_key="**\\*\\***COMPOSIO_API_KEY**\\*\\***")

## Step 4
# Get GitHub tools that are pre-configured
actions = composio_toolset.get_actions(actions=[Action.GITHUB_ACTIVITY_STAR_REPO_FOR_AUTHENTICATED_USER])

## Step 5
my_task = "Star a repo ComposioHQ/composio on GitHub"

# Create a chat completion request to decide on the action
response = openai_client.chat.completions.create(
model="gpt-4-turbo",
tools=actions, # Passing actions we fetched earlier.
messages=[
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": my_task}
  ]
)

執行此 Python 腳本以使用代理程式執行給定的指令。

有關 Composio 的更多訊息,請存取他們的文件

合成 GIF

{% cta https://dub.composio.dev/4KENKg0 %}為 Composio 儲存庫加註星標 ⭐{% endcta %}


  1. Vercel AI SDK :快速建立AI應用程式的工具包

如果您是 Typescript 開發人員,正在尋找建立 AI 應用程式的統一解決方案,那麼這就是您的最佳選擇。

Vercel AI SDK 是一個統一的 Typescript 工具包,旨在幫助開發人員使用 React、Vue、Svelte、NextJS 和 Node JS 建立人工智慧驅動的解決方案。

它主要有兩個組成部分,

  • AI SDK Core:一個統一的 API,用於透過LLMs產生結構化物件、文字和工具呼叫。

  • AI SDK 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();

呼叫人擇API

import { generateText } from "ai"
import { anthropic } from "@ai-sdk/anthropic"
const { text } = await generateText({
model: anthropic("claude-3-opus-20240229"),
prompt: "What is love?"
})

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

Vefcel AI SDK GIF

{% cta https://github.com/vercel/ai %}為 AI SDK 儲存庫加註星標 ⭐{% endcta %}


  1. Julep :人工智慧應用程式的託管後端

如果處理不當,開發人工智慧應用程式很快就會變得複雜。 Julep 為開發人員提供了一個全面的解決方案,用於建立具有長期記憶的 AI 代理並管理多步驟流程。

Julep 可以建立包含決策、循環、平行處理以及與眾多外部工具和 API 整合的多步驟任務。

雖然許多 AI 應用程式僅限於簡單的線性提示鍊和具有最少分支的 API 呼叫,但 Julep 旨在處理更複雜的場景。

Julep 可用於 Python 和 Javascript。

快速開始使用 Julep。

npm install @julep/sdk

使用 Julep 建立一個代理程式。

import { Julep } from "@julep/sdk";
import yaml from "js-yaml";

const client = new Julep({ apiKey: "your_julep_api_key",environment:“dev” });

async function createAgent() {
  const agent = await client.agents.create({
    name: "Storytelling Agent",
    model: "gpt-4",
    about:
      "You are a creative storytelling agent that can craft engaging stories and generate comic panels based on ideas.",
  });

  // 🛠️ Add an image generation tool (DALL·E) to the agent
  await client.agents.tools.create(agent.id, {
    name: "image_generator",
    description: "Use this tool to generate images based on descriptions.",
    integration: {
      provider: "dalle",
      method: "generate_image",
      setup: {
        api_key: "your_openai_api_key",
      },
    },
  });

  return agent;
}

查看他們的文件,以了解有關建立任務、執行任務以及與代理聊天的更多資訊。

去哪裡辦理 GIF

{% cta https://github.com/julep-ai/julep %}為 Julep 儲存庫加註星標 ⭐{% endcta %}


  1. CopilotKit :將 AI 副駕駛加入到任何 Web 應用程式

如果您想要一個能夠輕鬆加入人工智慧功能、文字生成和代理自動化的解決方案,那麼您的搜尋到此結束。

它提供了多個元件,例如應用程式內 AI 聊天機器人、Copilot 文字區域和生成 UI。

透過npm安裝 CopilotKit 來開始使用它。

npm install @copilotkit/react-core @copilotkit/react-ui @copilotkit/runtime
npm install openai

設定 OpenAI 金鑰。

OPENAI_API_KEY=your_api_key_here

透過建立新路由來處理/api/copilotkit端點來設定端點。

#route.ts

import {
  CopilotRuntime,
  OpenAIAdapter,
  copilotRuntimeNextJSAppRouterEndpoint,
} from '@copilotkit/runtime';
import OpenAI from 'openai';
import { NextRequest } from 'next/server';

const openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });
const serviceAdapter = new OpenAIAdapter({ openai });
const runtime = new CopilotRuntime();

export const POST = async (req: NextRequest) => {
  const { handleRequest } = copilotRuntimeNextJSAppRouterEndpoint({
    runtime,
    serviceAdapter,
    endpoint: '/api/copilotkit',
  });

  return handleRequest(req);
};

配置 Copilot 提供者

#layout.tsx

import { CopilotKit } from "@copilotkit/react-core"; 

export default function RootLayout({children}) {
  return (
    {/* Make sure to use the URL you configured in the previous step */}
    <CopilotKit runtimeUrl="/api/copilotkit">
      {children}
    </CopilotKit> 
  );
}

連接副駕駛 UI。

#layout.tsx

import "@copilotkit/react-ui/styles.css";
import { CopilotPopup } from "@copilotkit/react-ui";

export function YourApp() {
  return (
    <>
      <YourMainContent />
      <CopilotPopup
        instructions={"You are assisting the user as best as you can. Answer in the best way possible given the data you have."}
        labels={{
          title: "Popup Assistant",
          initial: "Need any help?",
        }}
      />
    </>
  );
}

至此,您已成功在網路應用程式中新增了彈出視窗。

更多內容請參考官方文件。

副駕駛套件 GIF

{% cta https://github.com/CopilotKit/CopilotKit %}為 CopilotKit 儲存庫加註星標 ⭐{% endcta %}


  1. E2b :執行AI產生程式碼的執行時

如果您正在建立需要 AI 生成的程式碼執行的應用程式(例如 AI 分析師、軟體開發人員或生成 UI),那麼 E2B 是首選平台。

在幕後,它使用隔離的虛擬機器來沙箱程式碼執行。您可以在應用程式中為每個 LLM、使用者或 AI 代理會話執行單獨的沙箱。例如,如果您正在建立人工智慧資料分析聊天機器人,您將為每個使用者會話啟動沙箱。

安裝E2B SDK。

npm i @e2b/code-interpreter dotenv

編寫啟動沙箱的程式碼。

import 'dotenv/config'
import { Sandbox } from '@e2b/code-interpreter'

const sbx = await Sandbox.create() // By default the sandbox is alive for 5 minutes
const execution = await sbx.runCode('print("hello world")') // Execute Python inside the sandbox
console.log(execution.logs)

const files = await sbx.files.list('/')
console.log(files)

啟動沙箱。

npx tsx ./index.ts

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

E2B 動圖

{% cta https://github.com/e2b-dev/e2b %}為 E2B 儲存庫加註星標 ⭐{% endcta %}


  1. Haystack :生產就緒的人工智慧框架

Haystack 是一個完整的平台,可滿足您建立可用於生產的 RAG 管道、最先進的 AI 搜尋系統和 LLM 支援的應用程式的所有需求。

Haystack 提供了建構管道的模組化方法,使開發人員可以在需要時更輕鬆地加入向量儲存、重新排序器和嵌入模型等元件。

首先透過pip安裝它。

pip install haystack-ai

讓我們建立一個簡單的 RAG 管道。

import os
from haystack import Pipeline, Document
from haystack.utils import Secret
from haystack.document_stores.in_memory import InMemoryDocumentStore
from haystack.components.retrievers.in_memory import InMemoryBM25Retriever
from haystack.components.generators import OpenAIGenerator
from haystack.components.builders.answer_builder import AnswerBuilder
from haystack.components.builders.prompt_builder import PromptBuilder

# Write documents to InMemoryDocumentStore
document_store = InMemoryDocumentStore()
document_store.write_documents([
    Document(content="My name is Jean and I live in Paris."), 
    Document(content="My name is Mark and I live in Berlin."), 
    Document(content="My name is Giorgio and I live in Rome.")
])

# Build a RAG pipeline
prompt_template = """
Given these documents, answer the question.
Documents:
{% for doc in documents %}
    {{ doc.content }}
{% endfor %}
Question: {{question}}
Answer:
"""

retriever = InMemoryBM25Retriever(document_store=document_store)
prompt_builder = PromptBuilder(template=prompt_template)
llm = OpenAIGenerator(api_key=Secret.from_token(api_key))

rag_pipeline = Pipeline()
rag_pipeline.add_component("retriever", retriever)
rag_pipeline.add_component("prompt_builder", prompt_builder)
rag_pipeline.add_component("llm", llm)
rag_pipeline.connect("retriever", "prompt_builder.documents")
rag_pipeline.connect("prompt_builder", "llm")

# Ask a question
question = "Who lives in Paris?"
results = rag_pipeline.run(
    {
        "retriever": {"query": question},
        "prompt_builder": {"question": question},
    }
)

print(results["llm"]["replies"])

RAG 管道具有各種元件,例如 Retriever、Prompt builder、LLM 等,

如果您想了解更多訊息,請查看文件。

乾草堆 GIF

{% cta https://github.com/deepset-ai/haystack %}為 Haystack 儲存庫加註星標 ⭐{% endcta %}


  1. ChromaDB :人工智慧應用程式資料庫

如果您建立依賴語義檢索的人工智慧應用程式,您將不可避免地需要向量資料庫。 ChromaDB 是最常用的向量資料庫之一。它們支援索引文字和圖像。

如果您不想自己託管,他們還提供託管服務。 Chroma 作為伺服器運作並提供第一方PythonJavaScript/TypeScript客戶端 SDK

  1. 安裝 ChromaDB
yarn install chromadb chromadb-default-embed

透過pypi安裝Chroma****以高效能執行後端伺服器。

執行 Chroma 後端:

chroma run --path ./getting-started

然後,建立一個連接到它的客戶端:

import { ChromaClient } from "chromadb";
const client = new ChromaClient();

建立一個集合#

集合是您儲存嵌入、文件和任何其他元資料的地方。您可以建立一個具有以下名稱的集合:

const collection = await client.createCollection({
  name: "my_collection",
});

將一些文字文件加入集合中

Chroma 將儲存您的文字並自動處理嵌入和索引。您也可以自訂嵌入模型。

await collection.add({
  documents: [
    "This is a document about pineapple",
    "This is a document about oranges",
  ],
  ids: ["id1", "id2"],
});

查詢集合

您可以使用查詢文字清單來查詢集合,Chroma 將會傳回n最相似的結果。就是這麼簡單!

const results = await collection.query({
  queryTexts: "This is a query document about hawaii", // Chroma will embed this for you
  nResults: 2, // how many results to return
});
console.log(results);

閱讀文件以了解更多資訊。

色度資料庫 GIF

{% cta https://github.com/chroma-core/chroma %}為 ChromaDB 儲存庫加註星標 ⭐{% endcta %}


  1. Postiz :人工智慧驅動的社群媒體工具

建立 SaaS 應用程式需要大量的時間、精力和金錢,如果沒有用戶,使用花哨的技術就沒有意義。

Postiz 解決了這個問題;它是一款由人工智慧驅動的工具,可幫助您接觸潛在用戶和客戶、產生潛在客戶並幫助您完成 SaaS 之旅。

主要特點包括

  • 同時在多個社群媒體上發佈內容。

  • 安排您的內容(計時),以便在人們在線時發布它。

  • 借助 AI 的幫助來產生內容,以便您可以更快地建立內容。

  • 如果您很懶,請新增您的社群媒體管道並讓其他人管理它們。

郵差 GIF

{% cta https://github.com/gitroomhq/postiz-app %}為 Postiz 儲存庫加註星標 ⭐{% endcta %}


感謝您閱讀這篇文章。

在下面的評論中,讓我知道其他很酷的人工智慧工具或框架是否幫助您建立了應用程式。

PS請隨時在 X 上關注我;我分享有價值的事物-保證!


原文出處:https://dev.to/nevodavid/8-open-source-tools-to-build-your-next-ai-saas-app-11ip


共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。

阿川私房教材:學程式,拿 offer!

63 個專案實戰,直接上手!
無需補習,按步驟打造你的面試作品。

立即解鎖你的轉職秘笈