對我來說,人工智慧無所不在。
但有時,很難理解什麼是有趣的專案以及什麼專案可以用於您的網站。
我整理了 9 個開源儲存庫的列表,您明天就可以將其實施到您的儲存庫中!
我以前曾建置過 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 的更多訊息,請存取他們的文件。
{% cta https://dub.composio.dev/qxJBshj %}為 Composio 儲存庫加註星標 ⭐{% endcta %}
建立人工智慧原型是一回事,但將它們部署到企業用例則是另一回事。
解決方案需要安全、穩健且防彈。 LLMWare 是一個框架,可讓您對建立企業 AI 應用程式充滿信心。
它們可讓您快速建立超高效的 AI 代理、企業 RAG 和其他工作流程。
LLMWare 有兩個主要元件:
RAG Pipeline - 將知識源連接到產生人工智慧模型的整合元件。
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 的範例。有關更多訊息,請參閱文件。
{% cta https://github.com/llmware-ai/llmware %}為 LLMWare 儲存庫加註星標 ⭐{% endcta %}
如果您正在尋找一種將人工智慧整合到現有工作流程中的方法,那麼您的搜尋到此結束。 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 (
<>...</>
);
}
您可以查看他們的文件以獲取更多資訊。
{% cta https://github.com/CopilotKit/CopilotKit %}為 CopilotKit 儲存庫加註星標 ⭐{% endcta %}
建立人工智慧應用程式很快就會變得複雜。多個移動元件(例如模型、工具和技術)使管理它們更具挑戰性。
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。查看他們的文件以了解更多資訊。
{% cta https://github.com/julep-ai/julep %}為 Julep 儲存庫加註星標 ⭐{% endcta %}
在不監控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)
有關更多訊息,請參閱他們的文件。
{% cta https://github.com/traceloop/openllmetry %}為 OpenLLMetry 儲存庫加註星標 ⭐{% endcta %}
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()
查看文件以了解更多資訊。
{% cta https://github.com/Avaiga/taipy %}為 Taipy 儲存庫加註星標 ⭐{% endcta %}
扳機。 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,
};
},
});
{% cta https://github.com/triggerdotdev/trigger.dev %}為 Trigger.dev 儲存庫加註星標 ⭐{% endcta %}
向量資料庫是建立人工智慧應用程式的重要組成部分。它們可協助您儲存、查詢和管理文字、圖像、視訊和音訊等非結構化資料的嵌入。
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"
)
有關更多訊息,請參閱他們的文件。
{% cta https://github.com/milvus-io/milvus %}為 Milvus 儲存庫加註星標 ⭐{% endcta %}
建立應用程式是一回事,但獲得用戶是另一回事。還有什麼比社群媒體更好的尋找潛在客戶和用戶的媒介呢?
Postiz 使用人工智慧幫助您加強社群媒體遊戲。
它提供了管理社交媒體貼文、建立受眾群體、捕獲潛在客戶和發展業務所需的一切。
查看儲存庫以了解更多資訊。
{% 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