9 个开源库让你的简历脱颖而出⚡🚀
技术招聘市场已经失灵,过去两年竞争异常激烈。然而,掌握大公司使用的利基技术,并围绕这些技术构建创新应用,可以显著提升你简历的可信度。
因此,我编制了一份开源库列表,以帮助您脱颖而出。
请随意探索这些库,并在评论中让其他人了解您的组织正在实施的库。
Composio 👑 - AI 工具和集成平台
人工智能正在席卷全球,毫无疑问,未来的劳动力将由人机混合系统构成。要实现这一点,人工智能模型应该能够访问外部系统。
Composio 是该领域业界领先的解决方案。它提供涵盖 CRM、HRM、销售、开发、生产力和管理等各个垂直行业的工具和集成,且不断扩展。
轻松将 GitHub、Slack、Jira、Gmail 等应用程序与 AI 模型集成,以实现复杂的现实世界工作流程自动化。
它原生支持 Python 和 Javascript。
pip
使用或快速开始使用 Composio npm
。
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******")
# 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 脚本以使用代理执行给定的指令。
JavaScript
您可以使用 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) {
// If this entity/user hasn't already connected, the account
const connection = await entity.initiateConnection(appName);
console.log("Log in via: ", 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 = "Star a repo ComposioHQ/composio on GitHub"
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 等著名框架兼容。
欲了解更多信息,请访问官方 文档,欲查看更复杂的示例,请参阅存储库的 示例 部分。
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。
要将 Kafka 与 Kraft 一起使用,请创建集群 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
然后,您可以创建主题并发布和使用事件
在编写事件之前,必须先创建主题。在另一个 shell 中运行此命令。
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 的更多信息。
3. Grafana - 开放可观察性平台
Grafana 是许多大公司使用的另一款开源软件。它是一个分析和监控平台,允许您查询、存储和可视化来自多个数据源的指标。您还可以创建、浏览并与团队共享仪表板。
Grafana 的功能包括
- 指标和日志可视化。
- 动态仪表板。
- 根据指标的自定义规则,对 Slack、Pagerduty 等发出警报。
- 通过临时查询探索指标。
- 在同一个图表中混合多个数据源。
查看官方文档以详细了解 Grafana。
4. Celery - 分布式任务队列
构建一个健壮的应用程序可能颇具挑战性,尤其是在需要考虑多个事件的情况下。在这种情况下,Celery 可以派上用场。
Celery 是一款简单、灵活、分布式的开源软件,支持实时处理任务队列和调度。它允许您卸载耗时的任务并在后台异步执行,从而提高应用程序的性能和可扩展性。
它适用于大多数编程语言,从 Python 和 JS 到 Go 和 Rust。
Celery 使用 Redis 和 RabbitMQ 等消息代理。
通过安装快速开始pip
。
pip install celery reddit
在后台启动 Redis 服务器。
redis-server
定义一个简单的任务,例如发送电子邮件。
from celery import Celery
# Define a Celery app with Redis as the message broker
app = Celery('tasks', broker='redis://localhost:6379/0')
# Define a simple task (e.g., sending an email)
@app.task
def send_email(recipient):
print(f"Sending email to {recipient}")
return f"Email sent to {recipient}"
通过在终端中运行以下命令来启动 Celery 工作器:
celery -A tasks worker --loglevel=info
现在,您可以send_email
在 Python 代码中使用异步功能。创建另一个 Python 脚本来调用该任务:
python
Copy code
from tasks import send_email
# Call the task asynchronously using `.delay()`
send_email.delay('user@example.com')
一旦调用send_email.delay()
,该任务将由 Celery 工作进程异步处理,您将在 Celery 工作进程运行的终端中看到类似这样的内容:
[2024-09-24 12:00:00,000: INFO/MainProcess] Task tasks.send_email[abc123] succeeded in 0.001s: 'Email sent to user@example.com'
更多信息请参阅其官方文档。

5. Selenium - 浏览器自动化框架
浏览器自动化是你技术生涯中至少会遇到一次的必然之事之一。许多公司将 Selenium 用于多种用途,例如 Web 自动化、测试,甚至抓取动态 Web 内容。
Selenium 允许开发人员以编程方式与 Web 浏览器交互,模拟用户操作,例如点击按钮、填写表单以及在页面之间导航。这使得它成为跨浏览器和平台测试 Web 应用程序的宝贵工具。
它可用于编程语言。
使用 Python 安装 Selenium pip
。
pip install Selenium
您必须为基于 Chromium 的浏览器安装 Chrome Webdriver,为 Firefox 浏览器安装 Gecko Driver。
以下是使用 Selenium 和 ChromeDriver 的示例:
python
Copy code
from selenium import webdriver
# Specify the path to your ChromeDriver executable
driver = webdriver.Chrome(executable_path='/path/to/chromedriver')
# Open a webpage
driver.get("https://www.example.com")
# Perform actions (e.g., click a button, find elements, etc.)
print(driver.title) # Print the page title
# Close the browser
driver.quit()
更多信息,请查看文档。

6. LlamaIndex——法学硕士应用数据框架
人工智能如今炙手可热,许多公司都在围绕人工智能模型构建产品。现在正是成为人工智能开发者的最佳时机。
LlamaIndex 是一个使用大型语言模型 (LLM) 构建应用程序的领先框架。它允许您使用 LLM 将任何数据存储与关系数据库、图形数据库或向量数据库连接起来。它提供了构建高效 AI 应用程序所需的所有功能,例如数据加载器、连接器、分块器、重新排序器等。
通过安装即可快速开始使用 LlamaIndex pip
。
pip install llamaindex
在 LlamaIndex 中使用矢量数据库的一个简单示例。
# custom selection of integrations to work with core
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")
欲了解更多信息,请参阅他们的文档。
7. Pytorch Lightning——深度学习框架
如果您从事 AI 模型开发,了解 Pytorch lightning 可以更好地帮助您。
它是一个使用 PyTorch 构建的多功能框架,可帮助组织和发展深度学习项目。它提供了用于在不同领域训练、测试和部署模型的工具。
与普通 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
# define any number of nn.Modules (or use your current ones)
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))
# define the 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 defines the train loop.
# it is independent of forward
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)
# Logging to TensorBoard (if installed) by default
self.log("train_loss", loss)
return loss
def configure_optimizers(self):
optimizer = optim.Adam(self.parameters(), lr=1e-3)
return optimizer
# init the autoencoder
autoencoder = LitAutoEncoder(encoder, decoder)
加载 MNIST 数据。
# setup data
dataset = MNIST(os.getcwd(), download=True, transform=ToTensor())
train_loader = utils.data.DataLoader(dataset)
Lightning Trainer 将任何 LightningModule 与任何数据集“混合”,并抽象出扩展所需的所有工程复杂性。
# train the model (hint: here are some helpful Trainer arguments for rapid idea iteration)
trainer = L.Trainer(limit_train_batches=100, max_epochs=1)
trainer.fit(model=autoencoder, train_dataloaders=train_loader)
有关 Lightning 的更多信息,请查看 官方文档。
8. Posthog - 开源产品分析平台
如果没有 Posthog,构建现代应用程序就不完整。它是领先的产品分析解决方案,提供跟踪用户行为、衡量参与度并通过切实可行的洞察改进应用程序的工具。
这无疑是你一直需要的库之一。它们提供云和自托管解决方案。
Posthog 的一些主要功能包括:
- 事件跟踪:实时跟踪用户交互和行为。
- 会话记录:重播用户会话以了解他们如何浏览您的应用程序。
- 热图:直观地展示用户在您的网站上点击最多和参与最多的位置。
- 功能标志:无需重新部署代码即可为特定用户组启用或禁用功能。
更多信息请参阅官方文档。
9. Okta 的 Auth0 - 身份验证和授权平台
实施应用程序身份验证至关重要,并且了解如何进行身份验证很容易脱颖而出。
使用Auth0,您可以简化流程,以最小的努力实现安全登录、用户管理和多因素身份验证。
Auth0 的一些关键功能。
- 单点登录 (SSO):使用单一凭证跨多个应用程序无缝登录。
- 多重身份验证 (MFA):通过多种验证方法增加额外的安全性。
- 基于角色的访问控制 (RBAC):根据分配的角色管理用户权限,以实现安全访问控制。
- 社交登录集成:轻松通过 Google、Facebook 和 GitHub 集成登录。
Auth0 SDK 适用于几乎所有平台和语言。

感谢您阅读该列表文章。
如果您知道其他重要的开源 AI 工具,请在评论中告诉我。✨
文章来源:https://dev.to/composiodev/9-open-source-libraries-that-will-make-your-cv-stand-out-19nf