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

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

立即解鎖你的轉職秘笈

技術招聘系統出現了問題,且在過去兩年競爭愈發激烈。然而,掌握大公司的利基技術並圍繞這些技術構建創新的應用程序,可以顯著增強你履歷的可信度。

因此,我編纂了一份開源庫的清單,幫助你脫穎而出。

隨意探索這些庫,並在評論中告訴其他人你所在的組織正在實施的庫。

Resume GIF


Composio 👑 - AI 工具與整合平台

AI 在改變世界,未來的工作系統毫無疑問將會是人類與 AI 的混合系統。為了這樣的發展,AI 模型需要能夠訪問外部系統。

Composio 是該領域的領先解決方案,提供一系列不斷擴展的工具和整合目錄,涵蓋從 CRM、HRM、銷售到開發、生產力和行政管理等多個行業領域。

Composio Tools and Intergrations

輕鬆與 GitHub、Slack、Jira、Gmail 等應用程式整合 AI 模型,以自動化複雜的現實工作流程。

它對 Python 和 Javascript 提供原生支援。

使用 pipnpm 快速開始使用 Composio。

pip install composio-core

npm install composio-core

Python

添加 GitHub 整合。

composio add github

Composio 代表你處理使用者驗證與授權。

以下是如何使用 GitHub 整合來標星一個儲存庫。

from openai import OpenAI
from composio_openai import ComposioToolSet, App

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

# 初始化 Composio 工具集
composio_toolset = ComposioToolSet(api_key="**\\*\\***COMPOSIO_API_KEY**\\*\\***")

## 第 4 步
# 獲取預先配置的 GitHub 工具
actions = composio_toolset.get_actions(actions=[Action.GITHUB_ACTIVITY_STAR_REPO_FOR_AUTHENTICATED_USER])

## 第 5 步
my_task = "在 GitHub 上標星儲存庫 ComposioHQ/composio"

# 創建一個聊天完成請求以決定動作
response = openai_client.chat.completions.create(
model="gpt-4-turbo",
tools=actions, # 傳遞我們之前獲取的動作。
messages=[
    {"role": "system", "content": "你是一個有幫助的助手。"},
    {"role": "user", "content": my_task}
  ]
)

運行這個 Python 腳本來執行給定的指令。

Javascript

你可以使用 npmyarnpnpm 安裝它。

npm install composio-core

定義一個方法讓使用者連接他們的 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) {
      // 如果該實體/使用者尚未連接帳號
      const connection = await entity.initiateConnection(appName);
      console.log("請通過以下方式登錄: ", 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 = "在 GitHub 上標星儲存庫 ComposioHQ/composio"

  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 等兼容。

如需更多信息,請訪問官方 文檔,並查看倉庫的 範例 部分以獲得更復雜的範例。

Composio GIF

{% cta https://dub.composio.dev/tvBB7Ex %}標星 Composio 儲存庫 ⭐{% endcta %}


2. Apache Kafka - 分散式事件串流平台

Apache Kafka 是許多財富 500 強公司所需的高吞吐量事件數據管道的骨幹。在你的履歷中擁有 Kafka 絕對會讓你脫穎而出。

它是一個開源的分散式平台,用於處理實時數據流。它能以高容錯性收集、存儲和處理大量事件數據。

它非常適合構建事件驅動系統。Netflix、LinkedIn 和 Uber 等大型公司使用 Kafka 來串流實時數據和分析,管理事件驅動架構和監控系統,並實現實時推薦和通知。

下載 最新的 Kafka 發行版本並解壓以便開始使用:

$ tar -xzf kafka_2.13-3.8.0.tgz
$ cd kafka_2.13-3.8.0

使用 Kraft 設置 Kafka。

要使用 Kraft 中的 Kafka,創建一個集群 UUID。

KAFKA_CLUSTER_ID="$(bin/kafka-storage.sh random-uuid)" 

格式化日誌目錄

bin/kafka-storage.sh format -t $KAFKA_CLUSTER_ID -c config/kraft/server.properties

啟動 Kafka 伺服器

bin/kafka-server-start.sh config/kraft/server.properties

然後,你可以創建主題並發布和消費事件。

在撰寫事件之前,必須先創建主題。在另一個終端中運行此命令。

bin/kafka-topics.sh --create --topic quickstart-events --bootstrap-server localhost:9092

現在,向主題寫入一些事件。

bin/kafka-console-producer.sh --topic quickstart-events --bootstrap-server localhost:9092
>This is my first event
>This is my second event

讀取事件。

bin/kafka-console-consumer.sh --topic quickstart-events --from-beginning --bootstrap-server localhost:9092

如需有關 Kafka 及其用法的詳細資訊,請參考我不久前撰寫的這篇 文章

了解更多有關 Kafka 的信息 這裡.

Kafka GIF

{% cta https://github.com/apache/kafka %}探索 Kafka Mirror 儲存庫 ⭐{% endcta %}


3. Grafana - 開放可觀察性平台

Grafana 是許多大型公司使用的另一款開源軟體。它是一個分析和監控平台,允許你查詢、存儲和可視化來自多個數據來源的指標。你還可以與團隊創建、探索和共享儀表板。

Grafana 的功能包括

  • 指標和日誌可視化。
  • 動態儀表板。
  • 根據指標的自定義規則在 Slack、Pagerduty 等上警報。
  • 通過臨時查詢探索指標。
  • 在同一圖表中混合多個數據來源。

請查看官方 文檔 以詳細探索 Grafana。

Grafana GIF

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


4. Celery - 分散式任務隊列

構建穩健的應用程序可能會很具挑戰性,尤其是當需要考慮多個事件時。在這種情況下,Celery 可以派上用場。

Celery 是一款簡單、靈活、分散式的開源軟件,促進任務隊列和計劃的實時處理。它讓你能夠將耗時的任務卸載並在背景中異步執行,提高了應用程序的性能和可擴展性。

它支持多種編程語言,包括 Python、JS、Go 和 Rust。

Celery 使用像 Redis 和 RabbitMQ 等消息代理。

通過 pip 快速安裝。

pip install celery reddit

在背景中啟動 Redis 伺服器。

redis-server

定義一個簡單的任務,例如發送電子郵件。

from celery import Celery

# 定義一個以 Redis 作為消息代理的 Celery 應用
app = Celery('tasks', broker='redis://localhost:6379/0')

# 定義一個簡單的任務(例如,發送電子郵件)
@app.task
def send_email(recipient):
    print(f"正在向 {recipient} 發送電子郵件")
    return f"已向 {recipient} 發送電子郵件"

在終端中運行以下命令以啟動 Celery 工作進程:

celery -A tasks worker --loglevel=info

現在你可以在 Python 代碼中異步使用 send_email。創建另一個 Python 腳本來調用這個任務:

from tasks import send_email

# 使用 `.delay()` 異步調用任務
send_email.delay('[email protected]')

一旦你調用 send_email.delay(),該任務將由 Celery 工作進程異步處理,你會在運行 Celery 工作進程的終端中看到類似的信息:

[2024-09-24 12:00:00,000: INFO/MainProcess] 任務 tasks.send_email[abc123] 在 0.001s 內成功執行: '已向 [email protected] 發送電子郵件'

如需了解更多內容,請參見它們的官方 文檔

Celery GIF

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


5. Selenium - 瀏覽器自動化框架

瀏覽器自動化是你在技術職業生涯中至少會遇到一次的必然事情。許多公司使用 Selenium 來滿足多種用途,例如網站自動化、測試,甚至抓取動態網頁內容。

Selenium 允許開發人員以編程方式與網頁瀏覽器互動,模擬用戶操作,如單擊按鈕、填寫表單和在頁面之間導航。這使它成為跨瀏覽器和平臺測試網頁應用程序的一個重要工具。

它支持多種編程語言。

在 Python 中使用 pip 安裝 Selenium。

pip install Selenium

你必須為基於 Chromium 的瀏覽器安裝 Chrome Webdriver,並為 Firefox 瀏覽器安裝 Gecko Driver。

以下是使用 Selenium 與 ChromeDriver 的範例:

from selenium import webdriver

# 指定 ChromeDriver 可執行檔案的路徑
driver = webdriver.Chrome(executable_path='/path/to/chromedriver')

# 打開一個網頁
driver.get("https://www.example.com")

# 執行操作(例如,單擊按鈕,查找元素等)
print(driver.title)  # 打印頁面標題

# 關閉瀏覽器
driver.quit()

如需更多資訊,請查看 文檔

Selenium GIF

{% cta https://github.com/SeleniumHQ/selenium %}探索 Selenium 儲存庫 ⭐{% endcta %}


6. LlamaIndex - 針對 LLM 應用的數據框架

AI 現在正火熱,許多公司正圍繞 AI 模型構建產品。沒有比現在更適合成為 AI 開發者的時機了。

LlamaIndex 是構建大型語言模型(LLMs)應用的領先框架。它讓你可以將任何數據存儲連接到 LLM,無論是關聯型、圖形型還是向量型數據庫。它提供了許多功能,如數據加載器、連接器、分塊器、重新排序器等,以構建高效的 AI 應用程序。

通過 pip 快速開始使用 LlamaIndex。

pip install llamaindex

這是使用 LlamaIndex 中向量數據庫的簡單範例。

# 自定義選擇的整合以與核心工作
pip install llama-index-core
pip install llama-index-llms-openai
pip install llama-index-llms-replicate
pip install llama-index-embeddings-huggingface

import os

os.environ["OPENAI_API_KEY"] = "YOUR_OPENAI_API_KEY"

from llama_index.core import VectorStoreIndex, SimpleDirectoryReader

documents = SimpleDirectoryReader("YOUR_DATA_DIRECTORY").load_data()
index = VectorStoreIndex.from_documents(documents)

查詢數據庫。

query_engine = index.as_query_engine()
query_engine.query("YOUR_QUESTION")

如需更多信息,請參考他們的 文檔

LlamaIndex GIF

{% cta https://github.com/run-llama/llama_index %}探索 Llama Index 儲存庫 ⭐{% endcta %}


7. Pytorch Lightning - 深度學習框架

如果你從事 AI 模型開發,了解 Pytorch Lightning 對你會有很大幫助。

它是一個使用 PyTorch 構建的多功能框架,幫助組織和發展深度學習項目。它提供了在不同領域訓練、測試和部署模型的工具。

使用 Lightning 相較於普通 PyTorch 的優勢包括:

  • 使 PyTorch 代碼更易於閱讀,更加組織化和易於使用。
  • 通過提供內建訓練循環和工具,減少重複代碼。
  • 簡化了訓練、實驗和部署模型的過程,減少不必要的代碼。

你可以通過 pip 快速開始使用 Lightning:

使用 Lightning 模組定義自動編碼器。

import os
from torch import optim, nn, utils, Tensor
from torchvision.datasets import MNIST
from torchvision.transforms import ToTensor
import lightning as L

# 定義任意數量的 nn.Modules(或使用你當前的)
encoder = nn.Sequential(nn.Linear(28 * 28, 64), nn.ReLU(), nn.Linear(64, 3))
decoder = nn.Sequential(nn.Linear(3, 64), nn.ReLU(), nn.Linear(64, 28 * 28))

# 定義 LightningModule
class LitAutoEncoder(L.LightningModule):
    def __init__(self, encoder, decoder):
        super().__init__()
        self.encoder = encoder
        self.decoder = decoder

    def training_step(self, batch, batch_idx):
        # training_step 定義了訓練循環。
        # 它與前向傳播相獨立
        x, _ = batch
        x = x.view(x.size(0), -1)
        z = self.encoder(x)
        x_hat = self.decoder(z)
        loss = nn.functional.mse_loss(x_hat, x)
        # 預設情況下記錄到 TensorBoard(如果已安裝)
        self.log("train_loss", loss)
        return loss

    def configure_optimizers(self):
        optimizer = optim.Adam(self.parameters(), lr=1e-3)
        return optimizer

# 初始化自動編碼器
autoencoder = LitAutoEncoder(encoder, decoder)

加載 MNIST 數據。

# 設置數據
dataset = MNIST(os.getcwd(), download=True, transform=ToTensor())
train_loader = utils.data.DataLoader(dataset)

Lightning Trainer “混合”任何 LightningModule 與任何數據集,並抽象掉進行擴展所需的所有工程複雜性。

# 訓練模型(提示:這裡有一些有用的 Trainer 參數可供快速想法迭代)
trainer = L.Trainer(limit_train_batches=100, max_epochs=1)
trainer.fit(model=autoencoder, train_dataloaders=train_loader)

如需了解更多有關 Lightning 的信息,請查看 官方文檔

Lightining GIF

{% cta https://github.com/Lightning-AI/pytorch-lightning %}探索 Pytorch Lightning 儲存庫 ⭐{% endcta %}


8. Posthog - 開源產品分析平台

構建現代應用程序離不開 Posthog。它是產品分析的領先解決方案,提供工具來跟踪用戶行為、測量參與度,並通過可操作的見解改善你的應用程序。

這無疑是你會經常需要的庫之一。他們提供雲端及自我託管的解決方案。

Posthog 的一些關鍵功能包括

  • 事件跟踪:實時跟踪用戶交互和行為。
  • 會話錄影:重播用戶會話,以瞭解他們如何導航你的應用。
  • 熱圖:可視化用戶在你的網站上點擊和互動最多的地方。
  • 功能標誌:在不重新部署代碼的情況下,為特定用戶組啟用或禁用功能。

如需了解更多,請參見官方 文檔

Posthog GIF

{% cta https://github.com/PostHog/posthog %}探索 Posthog 儲存庫 ⭐{% endcta %}


9. Auth0 by Okta - 認證和授權平台

實施應用程序認證至關重要,知道如何執行認證將使你更加突出。

使用 Auth0,你可以簡化這個過程,實現安全登錄、用戶管理和多因素身份驗證,幫助你減少繁瑣的工作。

Auth0 的一些重要功能。

  • 單點登錄 (SSO):使用一個憑證實現多個應用的無縫登錄。
  • 多因素身份驗證 (MFA):通過多種驗證方法增強安全性。
  • 基於角色的訪問控制 (RBAC):根據所分配的角色管理用戶權限以實現安全訪問控制。
  • 社交登錄集成:輕鬆集成通過 Google、Facebook 和 GitHub 的登錄。

Auth0 SDK 幾乎適用於所有平台和語言。

Auth0 GIF

{% cta https://github.com/PostHog/posthog %}探索 Posthog 儲存庫 ⭐{% endcta %}


感謝你閱讀這份清單。

如果你知道其他重要的開源 AI 工具,請在評論中告訴我。✨


原文出處:https://dev.to/composiodev/9-open-source-libraries-that-will-make-your-cv-stand-out-19nf


共有 0 則留言


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

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

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

立即解鎖你的轉職秘笈