技术招聘出了问题,过去两年间的竞争变得异常激烈。然而,掌握大公司使用的特定技术,并围绕这些技术构建创新应用,可以显著提升你的简历的可信度。
所以我整理了一份开源库的列表,帮助你在众多开发者中脱颖而出。
欢迎探索这些库,并在评论中分享你们组织正在实施的库。
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 添加 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 执行代理(entityName) { const 实体 = await 工具集.client.getEntity(entityName) await setupUserConnectionIfNotExists(实体.id); const 工具 = await 工具集.get_actions({ actions: ["github_activity_star_repo_for_authenticated_user"] }, 实体.id); const 指令 = "在GitHub上给ComposioHQ/composio仓库点赞" const 客户端 = new OpenAI({ apiKey: process.env.OPEN_AI_API_KEY }) const 响应 = await 客户端.chat.completions.create({ model: "gpt-4-turbo", messages: [{ role: "user", content: 指令, }], tools: 工具, tool_choice: "auto", }) console.log(响应.choices[0].message.tool_calls); await 工具集.handle_tool_call(响应, 实体.id); } 执行Github代理("joey")
进入全屏模式 退出全屏模式
执行代码,让代理为你完成工作。
Composio 与 LangChain、LlamaIndex、CrewAi 等著名框架配合使用。
了解更多信息,请访问官方 文档,对于更复杂的示例,请参阅仓库的 示例 部分。
给 Composio 仓库点个赞 ⭐
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
进入全屏模式 退出全屏模式
设置 Kafka 使用 Kraft。
要使用 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 >这是我的第一个事件 >这是我的第二个事件
进入全屏模式 退出全屏模式
读取事件。
bin/kafka-console-consumer.sh --topic quickstart-events --from-beginning --bootstrap-server localhost:9092
进入全屏模式 退出全屏模式
要详细了解Kafka及其用法,请参阅我之前写的一篇文章《Apache Kafka基础与工作原理介绍》文章。
阅读更多关于 Kafka 的内容 这里。
探索 Kafka Mirror 仓库 ⭐
Grafana 是另一款被许多大公司使用的开源软件。它是一个分析和监控平台,允许你查询、存储和可视化来自多个数据源的指标。你还可以与团队创建、探索和分享仪表板。
Grafana 的特性包括
查看官方 文档 以详细了解 Grafana。
探索 Grafana 仓库 ⭐
构建一个健壮的应用程序可能颇具挑战性,尤其是在需要处理多个事件时。此时,Celery 就会派上用场。
Celery 是一个简单、灵活、分布式的开源软件,它能够方便地处理任务队列和调度。它允许你将耗时的任务移至后台异步执行,从而提高应用程序的性能和可扩展性。
它支持大多数编程语言,从 Python 和 JS 到 Go 和 Rust。
Celery 使用消息代理,如 Redis 和 RabbitMQ。
快速上手,通过 pip
安装。
pip install celery reddit
进入全屏模式 退出全屏模式
在后台启动 Redis 服务器。
redis-server
进入全屏模式 退出全屏模式
定义一个简单的任务,比如发送一封电子邮件。
从 celery 导入 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 脚本来调用该任务:
python 复制代码 from tasks import send_email # 使用 `.delay()` 异步调用任务 send_email.delay('user@example.com')
进入全屏模式 退出全屏模式
一旦你调用 send_email.delay()
,任务将会由 Celery 工作进程异步处理,在运行 Celery 工作进程的终端中你会看到类似这样的输出:
[2024-09-24 12:00:00,000: 信息/MainProcess] 任务 tasks.send_email[abc123] 在 0.001s 内完成:'邮件已发送至 user@example.com'
进入全屏模式 退出全屏模式
了解更多,请参阅其官方文档。
探索 Celery 仓库 ⭐
浏览器自动化是您在技术职业生涯中至少会遇到的一件事。许多公司使用Selenium进行多种用途,例如网页自动化、测试,甚至抓取动态网页内容。
Selenium 允许开发人员通过编程方式与 web 浏览器交互,模拟用户操作,如点击按钮、填写表单和在页面之间导航。这使得它成为跨浏览器和平台测试 web 应用程序的宝贵工具。
它支持多种编程语言。
使用 pip
在 Python 中安装 Selenium。
pip install Selenium
进入全屏模式 退出全屏模式
您必须为基于 Chromium 的浏览器安装 ChromeDriver,为 Firefox 浏览器安装 Gecko Driver。
这里是一个使用 Selenium 和 ChromeDriver 的示例:
python Copy code 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 仓库 ⭐
AI 当前非常火热,多家公司都在围绕AI模型构建产品。现在成为一名AI开发者再好不过了。
LlamaIndex 是一个用于构建使用大型语言模型(LLMs)的应用程序的领先框架。它允许您将任何数据存储与关系型、图或向量数据库连接到 LLMs。它提供了所有必要的功能,例如数据加载器、连接器、分块器、重新排序器等,以构建高效的 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")
进入全屏模式 退出全屏模式
如需更多信息,请参阅他们的文档。
探索 Llama Index 仓库 ⭐
如果你从事AI模型开发,了解Pytorch Lightning可以更好地帮助你的工作。
它是一个使用 PyTorch 构建的多功能框架,有助于组织和扩展深度学习项目。它提供了用于训练、测试和部署模型的工具,适用于不同领域。
这里使用 PyTorch Lightning 有一些优势:
你可以通过 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 定义了训练循环。 # 它与 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) # 默认记录到 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)
进入全屏模式 退出全屏模式
了解更多关于 Pytorch Lightning 的内容,请参阅官方文档。
探索 Pytorch Lightning 仓库 ⭐
构建现代应用程序时不可或缺的是 Posthog。它是产品分析的领先解决方案,提供了跟踪用户行为、衡量参与度和利用可操作见解改进应用程序的工具。
这绝对是你会经常用到的库之一。它们提供了云和自托管的解决方案。
Posthog 的一些关键特性包括
了解更多,请参阅官方文档。
探索 Posthog 仓库 ⭐
实现应用认证是必不可少的,知道如何实现认证也能轻松脱颖而出。
使用 Auth0 ,你可以简化流程,实现安全登录、用户管理和多重身份验证,而无需太多努力。
Auth0 的一些关键功能。
Auth0 SDK 几乎适用于所有平台和语言。
探索 Posthog 仓库 ⭐
感谢您阅读这份列表文章。
在评论中告诉我,如果你知道其他重要的开源AI工具。✨