技術招聘系統出現了問題,且在過去兩年競爭愈發激烈。然而,掌握大公司的利基技術並圍繞這些技術構建創新的應用程序,可以顯著增強你履歷的可信度。
因此,我編纂了一份開源庫的清單,幫助你脫穎而出。
隨意探索這些庫,並在評論中告訴其他人你所在的組織正在實施的庫。
AI 在改變世界,未來的工作系統毫無疑問將會是人類與 AI 的混合系統。為了這樣的發展,AI 模型需要能夠訪問外部系統。
Composio 是該領域的領先解決方案,提供一系列不斷擴展的工具和整合目錄,涵蓋從 CRM、HRM、銷售到開發、生產力和行政管理等多個行業領域。
輕鬆與 GitHub、Slack、Jira、Gmail 等應用程式整合 AI 模型,以自動化複雜的現實工作流程。
它對 Python 和 Javascript 提供原生支援。
使用 pip
或 npm
快速開始使用 Composio。
pip install composio-core
npm 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******")
# 初始化 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 腳本來執行給定的指令。
你可以使用 npm
、yarn
或 pnpm
安裝它。
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 等兼容。
如需更多信息,請訪問官方 文檔,並查看倉庫的 範例 部分以獲得更復雜的範例。
{% cta https://dub.composio.dev/tvBB7Ex %}標星 Composio 儲存庫 ⭐{% endcta %}
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 的信息 這裡.
{% cta https://github.com/apache/kafka %}探索 Kafka Mirror 儲存庫 ⭐{% endcta %}
Grafana 是許多大型公司使用的另一款開源軟體。它是一個分析和監控平台,允許你查詢、存儲和可視化來自多個數據來源的指標。你還可以與團隊創建、探索和共享儀表板。
Grafana 的功能包括
請查看官方 文檔 以詳細探索 Grafana。
{% cta https://github.com/grafana/grafana %}探索 Grafana 儲存庫 ⭐{% endcta %}
構建穩健的應用程序可能會很具挑戰性,尤其是當需要考慮多個事件時。在這種情況下,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] 發送電子郵件'
如需了解更多內容,請參見它們的官方 文檔。
{% cta https://github.com/celery/celery %}探索 Celery 儲存庫 ⭐{% endcta %}
瀏覽器自動化是你在技術職業生涯中至少會遇到一次的必然事情。許多公司使用 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()
如需更多資訊,請查看 文檔。
{% cta https://github.com/SeleniumHQ/selenium %}探索 Selenium 儲存庫 ⭐{% endcta %}
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")
如需更多信息,請參考他們的 文檔。
{% cta https://github.com/run-llama/llama_index %}探索 Llama Index 儲存庫 ⭐{% endcta %}
如果你從事 AI 模型開發,了解 Pytorch Lightning 對你會有很大幫助。
它是一個使用 PyTorch 構建的多功能框架,幫助組織和發展深度學習項目。它提供了在不同領域訓練、測試和部署模型的工具。
使用 Lightning 相較於普通 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 的信息,請查看 官方文檔。
{% cta https://github.com/Lightning-AI/pytorch-lightning %}探索 Pytorch Lightning 儲存庫 ⭐{% endcta %}
構建現代應用程序離不開 Posthog。它是產品分析的領先解決方案,提供工具來跟踪用戶行為、測量參與度,並通過可操作的見解改善你的應用程序。
這無疑是你會經常需要的庫之一。他們提供雲端及自我託管的解決方案。
Posthog 的一些關鍵功能包括
如需了解更多,請參見官方 文檔。
{% cta https://github.com/PostHog/posthog %}探索 Posthog 儲存庫 ⭐{% endcta %}
實施應用程序認證至關重要,知道如何執行認證將使你更加突出。
使用 Auth0,你可以簡化這個過程,實現安全登錄、用戶管理和多因素身份驗證,幫助你減少繁瑣的工作。
Auth0 的一些重要功能。
Auth0 SDK 幾乎適用於所有平台和語言。
{% 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