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

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

立即解鎖你的轉職秘笈

長話短說

對我來說,人工智慧無所不在。

但有時,很難理解什麼是有趣的專案以及什麼專案可以用於您的網站。

我整理了 9 個開源儲存庫的列表,您明天就可以將其實施到您的儲存庫中!

惡搞之家 GIF


  1. Composio 👑 - 為您的 AI 代理程式提供多合一的工具解決方案

我以前曾建置過 AI 代理,但當涉及到與 GitHub、Slack 和 Jira 等第三方服務連接以實現複雜的 AI 自動化時,我找不到一個有效的工具,直到我發現了Composio

它是一個開源平台,提供 100 多種跨行業垂直的工具和集成,從 CRM、HRM、社交媒體到開發和生產力。

整合儀表板組成

它們處理複雜的使用者身份驗證,例如 OAuth、ApiKey 等,因此您只能專注於建立高效且複雜的 AI 自動化。

它們原生支援 Python 和 Javascript。

您可以透過使用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/qxJBshj %}為 Composio 儲存庫加註星標 ⭐{% endcta %}


  1. LLMWare -複雜企業的人工智慧

建立人工智慧原型是一回事,但將它們部署到企業用例則是另一回事。

解決方案需要安全、穩健且防彈。 LLMWare 是一個框架,可讓您對建立企業 AI 應用程式充滿信心。

它們可讓您快速建立超高效的 AI 代理、企業 RAG 和其他工作流程。

LLMWare 有兩個主要元件:

  1. RAG Pipeline - 將知識源連接到產生人工智慧模型的整合元件。

  2. 50 多個小型專用模型針對企業流程自動化中的關鍵任務進行了微調,包括基於事實的問答、分類、摘要和提取。

LLMWare 入門非常簡單。

pip3 install llmware

這是 LLMWare 中資料檢索的一個簡單範例。


"""This example demonstrates the various ways to retrieve data from libraries:
      1. Create a sample library (e.g., UN Resolutions)
      2. Execute a Text Query with Author Name Filter
      3. Display Results
"""

import os
from llmware.library import Library
from llmware.retrieval import Query
from llmware.setup import Setup

def create_un_500_sample_library(library_name):

    library = Library().create_new_library(library_name)
    sample_files_path = Setup().load_sample_files(over_write=False)
    ingestion_folder_path = os.path.join(sample_files_path, "UN-Resolutions-500")
    parsing_output = library.add_files(ingestion_folder_path)

    return library

def text_retrieval_by_author(library, query_text, author):

    #   create a Query instance and pass the previously created Library object
    query = Query(library)

    #   set the keys that should be returned in the results
    query.query_result_return_keys = ["file_source", "page_num", "text", "author_or_speaker"]

    #   perform a text query by author
    query_results = query.text_query_by_author_or_speaker(query_text, author)

    #   display the results
    for i, result in enumerate(query_results):

        file_source = result["file_source"]
        page_num = result["page_num"]
        author = result["author_or_speaker"]
        text = result["text"]

        # shortening for display purpose only
        if len(text) > 150:  text = text[0:150] + " ... "

        print (f"\n> Top result for '{query_text}': {file_source} (page {page_num}), Author: {author}:\nText:{text}")

    return query_results

if __name__ == "__main__":

    library = create_un_500_sample_library("lib_author_filter_1")
    qr_output = text_retrieval_by_author(library=library, query_text='United Nations', author='Andrea Chambers')

探索如何使用 LLMWare 的範例。有關更多訊息,請參閱文件

LLMs軟體 GIF

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


  1. CopilotKit - 將 AI 整合到您的 Web 應用程式中

如果您正在尋找一種將人工智慧整合到現有工作流程中的方法,那麼您的搜尋到此結束。 CopilotKit 讓您可以將 AI 工作流程直接輕鬆地與任何應用程式整合。

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

讓我們看看如何使用 CopilotKit 建立人工智慧聊天機器人。

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

配置應用程式提供者

首先,您必須使用<CopilotKit />提供者包裝與副駕駛互動的所有元件。

使用<CopilotSidebar /> UI 元件顯示 Copilot 聊天側邊欄。您可以選擇的其他一些選項是<CopilotPopup /><CopilotChat />

"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="<your-public-api-key>">
      <CopilotSidebar>
        {children}
      </CopilotSidebar>
    </CopilotKit>
  );
}

副駕駛可讀狀態

為副駕駛提供狀態知識。

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

export function YourComponent() {
  const { employees } = useEmployees();

  // Define Copilot readable state
  useCopilotReadable({
    description: "List of available users",
    value: users,
  });

  return (
    <>...</>
  );
}

副駕駛動作

讓 Copilot 使用useCopilotAction掛鉤執行操作。

import { useCopilotReadable, useCopilotAction } from "@copilotkit/react-core";

export function YourComponent() {
  const { employees, selectEmployee } = useEmployees();

  // Define Copilot readable state
  useCopilotReadable({
    description: "List of available users",
    value: users,
  });

  // Define Copilot action
  useCopilotAction({
    name: "Select an employee",
    description: "Select an employee from the list",
    parameters: [
      {
        name: "employeeId",
        type: "string",
        description: "The ID of the employee to select",
        required: true,
      }
    ],
    handler: async ({ employeeId }) => selectEmployee(employeeId),
  });

  return (
    <>...</>
  );
}

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

副駕駛套件 GIF

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


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

建立人工智慧應用程式很快就會變得複雜。多個移動元件(例如模型、工具和技術)使管理它們更具挑戰性。

Julep 是 AI 應用程式的託管後端,可透過內建記憶體(使用者管理)和知識(內建 RAG 和上下文管理)簡化超高效 AI 應用程式的建置。

開始使用以下pip指令。

pip install julep

這是它的工作原理。

from julep import Client
from pprint import pprint
import textwrap
import os

base_url = os.environ.get("JULEP_API_URL")
api_key = os.environ.get("JULEP_API_KEY")

client = Client(api_key=api_key, base_url=base_url)

#create agent
agent = client.agents.create(
    name="Jessica"
    model="gpt-4",
    tools=[]    # Tools defined here
)
#create a user
user = client.users.create(
    name="Anon",
    about="Average nerdy tech bro/girl spending 8 hours a day on a laptop,
)
#create a session
situation_prompt = """You are Jessica. You're a stuck-up Cali teenager.
You complain about everything. You live in Bel-Air, Los Angeles and
drag yourself to Curtis High School when necessary.
"""
session = client.sessions.create(
    user_id=user.id, agent_id=agent.id, situation=situation_prompt
)
#start a conversation

user_msg = "hey. what do you think of Starbucks?"
response = client.sessions.chat(
    session_id=session.id,
    messages=[
        {
            "role": "user",
            "content": user_msg,
            "name": "Anon",
        }
    ],
    recall=True,
    remember=True,
)

print("\n".join(textwrap.wrap(response.response[0][0].content, width=100)))

他們也支援 JavaScript。查看他們的文件以了解更多資訊。

去朱利普 GIF

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


  1. Traceloop 的 openLLMetry - AI 監控變得簡單

在不監控LLMs的情況下建立人工智慧應用是一場即將發生的災難。語言模型是不確定的,有時可能很棘手,向用戶提供一致價值的唯一方法是不斷監控 LLM 追蹤。

Taceloop 的 OpenLLMetry 是一個開源監控平台,最適合追蹤 AI 工作流程。

OpenLLMetry 可以偵測OpenTelemetry 已偵測到的所有內容,包括資料庫、API 呼叫等。

此外,他們還建立了一組自訂擴展,用於檢測對 OpenAI 或 Anthropic 或 Vector DB(例如 Chroma、Pinecone、Qdrant 或 Weaviate)的呼叫等內容。

最簡單的入門方法是使用 SDK。如需完整指南,請造訪我們的文件

安裝SDK:

pip install traceloop-sdk

在您的 LLM 應用程式中,要開始偵測程式碼,請像這樣初始化 Traceloop 追蹤器:

from traceloop.sdk import Traceloop

Traceloop.init() 

就是這樣。您現在正在使用 OpenLLMetry 追蹤您的程式碼!如果您在本地執行此程序,您可能需要停用批量發送,以便可以立即看到追蹤:

Traceloop.init(disable_batch=True)

有關更多訊息,請參閱他們的文件

追蹤環路 GIF

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


  1. TaiPy - 用 Python 建立 AI Web 應用程式

TaiPy 是一個開源程式庫,用於在 Python 中更快地建立可用於生產的 AI 應用程式。它允許您快速從簡單的試點過渡到生產就緒的 Web 應用程式。

這是所有 Python 開發者的超能力;即使不了解 JavaScript,您也可以建立現實世界的 AI 應用程式。

使用pip快速開始使用它。

pip install taipy

這個簡單的 Taipy 應用程式示範如何使用 Taipy 建立基本的電影推薦系統。

import taipy as tp
import pandas as pd
from taipy import Config, Scope, Gui

# Defining the helper functions

# Callback definition - submits scenario with genre selection
def on_genre_selected(state):
    scenario.selected_genre_node.write(state.selected_genre)
    tp.submit(scenario)
    state.df = scenario.filtered_data.read()

## Set initial value to Action
def on_init(state):
    on_genre_selected(state)

# Filtering function - task
def filter_genre(initial_dataset: pd.DataFrame, selected_genre):
    filtered_dataset = initial_dataset[initial_dataset["genres"].str.contains(selected_genre)]
    filtered_data = filtered_dataset.nlargest(7, "Popularity %")
    return filtered_data

# The main script
if __name__ == "__main__":
    # Taipy Scenario & Data Management

    # Load the configuration made with Taipy Studio
    Config.load("config.toml")
    scenario_cfg = Config.scenarios["scenario"]

    # Start Taipy Core service
    tp.Core().run()

    # Create a scenario
    scenario = tp.create_scenario(scenario_cfg)

    # Taipy User Interface
    # Let's add a GUI to our Scenario Management for a complete application

    # Get list of genres
    genres = [
        "Action", "Adventure", "Animation", "Children", "Comedy", "Fantasy", "IMAX"
        "Romance","Sci-FI", "Western", "Crime", "Mystery", "Drama", "Horror", "Thriller", "Film-Noir","War", "Musical", "Documentary"
    ]

    # Initialization of variables
    df = pd.DataFrame(columns=["Title", "Popularity %"])
    selected_genre = "Action"

    # User interface definition
    my_page = """
# Film recommendation

## Choose your favourite genre
<|{selected_genre}|selector|lov={genres}|on_change=on_genre_selected|dropdown|>

## Here are the top seven picks by popularity
<|{df}|chart|x=Title|y=Popularity %|type=bar|title=Film Popularity|>
    """

    Gui(page=my_page).run()

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

太比 gif

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


  1. Trigger Dev - 後台作業平台

扳機。 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

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


  1. Milvus - 用於 AI 應用程式的雲原生向量資料庫

向量資料庫是建立人工智慧應用程式的重要組成部分。它們可協助您儲存、查詢和管理文字、圖像、視訊和音訊等非結構化資料的嵌入。

Milvus 是最好的開源向量資料庫之一。它擁有所有先進的向量儲存和查詢方法,從 HNSW 到量化方法。

他們為大多數語言提供 SDK,例如 Python、Javascript、Go、Rust 等。

以下是如何開始使用 PyMilvus。

pip install --upgrade pymilvus==v2.4.4

若要安裝用於嵌入操作的模型庫,請執行以下命令:

pip install pymilvus[model]

連接到 Milvus

from pymilvus import MilvusClient

client = MilvusClient("http://localhost:19530")

client = MilvusClient(
    uri="http://localhost:19530",
    token="root:Milvus",
    db_name="default"
)

client = MilvusClient(
    uri="http://localhost:19530",
    token="user:password", # replace this with your token
    db_name="default"
)

有關更多訊息,請參閱他們的文件

放風箏 GIF

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


  1. Postiz - 使用 AI 擴大您的網路影響力

建立應用程式是一回事,但獲得用戶是另一回事。還有什麼比社群媒體更好的尋找潛在客戶和用戶的媒介呢?

Postiz 使用人工智慧幫助您加強社群媒體遊戲。

它提供了管理社交媒體貼文、建立受眾群體、捕獲潛在客戶和發展業務所需的一切。

查看儲存庫以了解更多資訊。

郵差 GIF

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


感謝您閱讀這篇文章。

如果有任何其他很酷的人工智慧工具或框架可幫助您建立應用程式,請在下面的評論中告訴我。

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


原文出處:https://dev.to/nevodavid/9-open-source-gems-to-become-the-ultimate-developer-2oj9


共有 0 則留言


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

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

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

立即解鎖你的轉職秘笈