過去 6-7 年裡我一直從事軟體產業,但事情的變化比以往任何時候都快。人工智慧正在從根本上改變我們編寫軟體的方式。

你不再局限於你一直在做的技術和框架。 Chatgpt 讓您更輕鬆地使用任何技術來建立複雜、高效能且面向未來的應用程式。

我編制了一個開源儲存庫列表,您可以在應用程式中實施以建立面向未來的應用程式。

未來就是現在 GIF


  1. Composio :人工智慧整合與工具平台

人工智慧無所不在,未來任何現代應用程式都需要某種形式的人工智慧自動化。 Composio 是將 AI 工作流程新增至應用程式的最佳替代方案。

它提供了 100 多個第三方服務的集成,例如 GitHub、Slack、Discord、Salesforce 等。您可以與 GPT-4 和 Gemini 等 AI 模型連接,以自動執行繁瑣且重複的工作。

例如,

  • 您可以建立全面的代理來與 Slack 和 Discord 上的使用者互動。回覆查詢、指導他們完成支援流程或安排後續行動。

  • 您可以建立編碼代理,以透過 Jira 票證自動修復 GitHub 中的錯誤。

  • 建立私人助理來處理會議和活動。

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 可與 LangChain、LlamaIndex、CrewAi 等著名框架搭配使用。

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

合成 GIF

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


  1. Encore :事件驅動和分散式系統讓一切變得簡單

如果您是一家新創公司,正在尋找用於建立強大的分散式應用程式的後端框架,那麼您的搜尋到此結束。

開發雲端應用程式通常會變得混亂,開發人員很難有效地管理和協調資源。

Encore 簡化了這個過程,使建立可擴展的事件驅動系統變得更容易,而沒有通常的複雜性。

Encore 透過提供整合類型安全後端框架、自動基礎架構配置和 DevOps 自動化的統一開發平台,簡化了這個混亂局面。

它在 Golang 和 Typescript 中都可使用。

透過安裝 CLI 開始使用 Encore。

curl -L https://encore.dev/install.sh | bash

建立一個應用程式。

encore app create

這將配置您的免費帳戶,允許您選擇應用程式的名稱,並選擇Hello World範本。

這將使用您選擇的應用程式名稱建立一個包含範例應用程式和簡單 REST API 的新資料夾。

在編輯器中開啟該檔案。

// Service hello implements a simple hello world REST API.
package hello

import (
    "context"
)

// This simple REST API responds with a personalized greeting.
//
//encore:api public path=/hello/:name
func World(ctx context.Context, name string) (*Response, error) {
    msg := "Hello, " + name + "!"
    return &Response{Message: msg}, nil
}

type Response struct {
    Message string
}

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

安可 GIF

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


  1. AssemblyScript - WebAssembly 的類似 Typescript 的語言

為 Web Assembly 或 WASM 建立應用程式以在 Web 上提供本機體驗的趨勢越來越明顯,尤其是對於動畫、遊戲、編輯器等運算量大的任務。

如果您想建立類似的應用程式,AssemblyScript 可能是一個不錯的選擇。

它是一種類似打字稿的語言,使用**Binaryen ** 而不是 JS 編譯為WebAssembly

它與 JS/TS 語法的緊密關聯使其成為開發人員無需學習低階語言即可建立近乎本機的 Web 應用程式的理想選擇。

開始使用 Assembly 腳本很容易。

npm install --save-dev assemblyscript

安裝後,編譯器提供了一個方便的腳手架實用程序,可以在當前目錄中快速設定新專案:

npx asinit .

asinit指令自動建立建議的目錄結構和設定檔:

現在可以透過呼叫 build 命令assembly/index.ts中的範例編譯為 WebAssembly:

npm run asbuild

這樣做會將編譯後的二進位檔案、綁定和定義檔傳送到build/目錄。

tests/index.js中產生的測試案例可以透過以下方式執行:

npm test

建置後,目錄包含像任何其他現代 Node.js ESM 模組一樣使用該模組的所有位元:

import * as myModule from "myModule";

產生的index.html顯示如何在Web 上使用該模組。為模組目錄提供服務的 Web 伺服器,預設顯示index.html ,可以透過以下方式啟動:

npm start

有關 AssemblyScript 的更多訊息,請參閱其存儲庫

組合語言 GIF

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


  1. Godot :多平台2D和3D遊戲引擎

遊戲是一個價值數千億美元的行業,並且預計只會成長。多項調查顯示,過去十年年輕人的遊戲時間大幅增加。

如果您想開發遊戲,Godot 可能是一個很好的開始。它是用 C 語言編寫的,而且不僅僅是遊戲。使用 Godot,您甚至可以建立動畫、AR/VR 和模擬軟體。

使用 Godot 建立的遊戲可以輕鬆匯出到 Web、MacOS、Linux、Windows、Android、IOS 和控制台。借助遊戲引擎,您還可以建立計算密集型應用程式,例如照片編輯器、動畫等。

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

戈多 GIF

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


5.Gitpod-按需雲端開發平台

如果您正在為您的團隊尋找基於雲端的開發環境,那麼您的搜尋到此結束。 Gitpod 是一個開源開發環境,可以自動設定編碼環境。

Gitpod 提供自動化和標準化的開發環境,可在雲端或本機電腦中自架執行。

有關 Gitpod 的更多訊息,請參閱其官方文件

蓋蒂圖片社 GIF

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


  1. Turborepo - 針對 JS/TS 最佳化的 mono 倉庫管理系統

隨著軟體的發展,建立單一儲存庫軟體可能會充滿挑戰。如果管理不當,它可能會成為一場噩夢。

Turborepo 解決了 Mono 儲存庫的擴充問題。它是一款專為 JS/TS 應用程式設計的高效能建置工具,可加快單包工作區中的工作流程。

主要特點

  • 增量建置:僅重建程式碼庫的變更部分以節省時間。

  • Monorepo 管理:針對管理單一儲存庫中的多個專案進行了最佳化。

  • 快取:利用本地和遠端快取來避免冗餘建置。

  • 並行執行:同時執行測試和建置等任務,以獲得更快的結果。

快速開始。

npx create-turbo@latest

入門儲存庫將具有以下內容:

  • 兩個可部署的應用程式

  • 三個共享庫用於 monorepo 的其餘部分

npm install turbo --global

全域安裝後,您可以從終端透過turbo執行腳本,

有關更多訊息,請參閱文件頁面

渦輪雷波 GIF

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


  1. Tauri - 為桌面建立極快的應用程式

Tauri 是一個輕量級、快速且安全的框架,用於使用 HTML、CSS 和 JavaScript 等 Web 技術建立跨平台應用程式。應用程式的後端是一個 Rust 來源二進位文件,具有前端可以與之互動的 API。

主要特點

  • 為多個平台建立應用程式:Windows、MacOS 和 Linux。

  • 它使用系統的WebView,避免捆綁瀏覽器。

  • 核心是用 Rust 建構的,以確保隱私和速度。

  • 支援Svelte、react、Vue等JS/TS框架。

查看文件以了解有關Tauri 的更多資訊。

金牛座 GIF

{% cta https://github.com/tauri-apps/tauri %}探索 Tauri 儲存庫 ⭐{% endcta %}


  1. gRPC - RPC 函式庫和框架

REST API 不足以建立快速、分散、低延遲的微服務。您需要快速且強大的東西,而 gRPC 是完美的。

它是 Google 的開源工具,專為跨不同平台和語言的服務之間進行高效通信而建置。它使用 HTTP/2 和協定緩衝區 (protobuf) 進行序列化。

主要特點

  • gRPC 使用 HTTP/2,允許透過單一連線重複使用多個請求,從而減少延遲並提高效能。

  • gRPC 支援多種程式語言。

  • gRPC 支援雙向串流傳輸,實現客戶端和伺服器之間的即時資料交換。

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

辦理 GIF

{% cta https://github.com/grpc/grpc %}探索 gRPC 儲存庫 ⭐{% endcta %}


  1. Mem0 :AI應用程式的記憶體層

建立人工智慧應用程式的一個重大挑戰是處理記憶體。這涉及對過去互動的高效儲存和智慧檢索,這可以顯著增強用戶體驗。

Mem0 讓開發人員可以更輕鬆地向 AI 應用程式加入記憶體層。它將記住用戶偏好、適應個人需求並不斷改進,使其成為客戶支援聊天機器人、人工智慧助理和自主系統的理想選擇。

透過pip安裝開始使用 Mem0。

pip install mem0ai

初始化記憶體0

from mem0 import Memory
m = Memory()

內存操作。

# 1. Add: Store a memory from any unstructured text
result = m.add("I am working on improving my tennis skills. Suggest some online courses.", user_id="alice", metadata={"category": "hobbies"})

# Created memory --> 'Improving her tennis skills.' and 'Looking for online suggestions.'

# 2. Update: update the memory
result = m.update(memory_id=<memory_id_1>, data="Likes to play tennis on weekends")

# Updated memory --> 'Likes to play tennis on weekends.' and 'Looking for online suggestions.'

# 3. Search: search related memories
related_memories = m.search(query="What are Alice's hobbies?", user_id="alice")

# Retrieved memory --> 'Likes to play tennis on weekends'

# 4. Get all memories
all_memories = m.get_all()
memory_id = all_memories["memories"][0] ["id"] # get a memory_id

# All memory items --> 'Likes to play tennis on weekends.' and 'Looking for online suggestions.'

# 5. Get memory history for a particular memory_id
history = m.history(memory_id=<memory_id_1>)

# Logs corresponding to memory_id_1 --> {'prev_value': 'Working on improving tennis skills and interested in online courses for tennis.', 'new_value': 'Likes to play tennis on weekends' }

有關 Mem0 功能的更多訊息,請參閱其官方文件

更多內容請參考官方文件

記憶體0

{% cta https://github.com/mem0ai/mem0 %}探索 Mem0 儲存庫 ⭐{% endcta %}


感謝您的閱讀。


原文出處:https://dev.to/composiodev/9-must-know-open-source-libraries-to-future-proof-yourself-f95


共有 0 則留言