继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

9 个开源库,让你的简历脱颖而出 ⚡ 🚀

翻阅古今
关注TA
已关注
手记 240
粉丝 9
获赞 36

技术招聘出了问题,过去两年间的竞争变得异常激烈。然而,掌握大公司使用的特定技术,并围绕这些技术构建创新应用,可以显著提升你的简历的可信度。

所以我整理了一份开源库的列表,帮助你在众多开发者中脱颖而出。

欢迎探索这些库,并在评论中分享你们组织正在实施的库。

Resume GIF


Composio 👑 - AI 工具和集成平台

AI 正在改变世界,没有人否认未来的工作模式将会是人机混合系统。为了实现这一点,AI 模型应该能够访问外部系统。

Composio 是这一领域的行业领先解决方案。它提供了不断扩展的工具和集成目录,涵盖了各个行业领域,从 CRM、HRM 和销售到开发、生产力和管理。

Composio 工具和集成

轻松地将 GitHub、Slack、Jira、Gmail 等应用程序与 AI 模型集成,以自动化复杂的现实世界工作流自动化。

它原生支持 Python 和 Javascript。

快速使用 pipnpm 开始使用 Composio。

    pip install composio-core

    npm install composio-core

进入全屏模式 退出全屏模式

Python

添加 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 脚本来使用代理执行给定的指令。

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 执行代理(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 GIF

给 Composio 仓库点个赞 ⭐


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

进入全屏模式 退出全屏模式

设置 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 GIF

探索 Kafka Mirror 仓库 ⭐


3. Grafana - 开源可观测性平台

Grafana 是另一款被许多大公司使用的开源软件。它是一个分析和监控平台,允许你查询、存储和可视化来自多个数据源的指标。你还可以与团队创建、探索和分享仪表板。

Grafana 的特性包括

  • 指标和日志可视化。
  • 动态仪表板。
  • 根据自定义指标规则在 Slack、Pagerduty 等上触发警报。
  • 通过即席查询探索指标。
  • 在同一图表中混合多个数据源。

查看官方 文档 以详细了解 Grafana。

Grafana GIF

探索 Grafana 仓库 ⭐


4. Celery - 分布式任务队列

构建一个健壮的应用程序可能颇具挑战性,尤其是在需要处理多个事件时。此时,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 GIF

探索 Celery 仓库 ⭐


5. Selenium - 浏览器自动化框架

浏览器自动化是您在技术职业生涯中至少会遇到的一件事。许多公司使用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 GIF

探索 Selenium 仓库 ⭐


6. LlamaIndex - 适用于LLM应用的数据框架

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")

进入全屏模式 退出全屏模式

如需更多信息,请参阅他们的文档。

LlamaIndex GIF

探索 Llama Index 仓库 ⭐


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

    # 定义任意数量的 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 的内容,请参阅官方文档

Lightining GIF

探索 Pytorch Lightning 仓库 ⭐


8. Posthog - 开源产品分析平台

构建现代应用程序时不可或缺的是 Posthog。它是产品分析的领先解决方案,提供了跟踪用户行为、衡量参与度和利用可操作见解改进应用程序的工具。

这绝对是你会经常用到的库之一。它们提供了云和自托管的解决方案。

Posthog 的一些关键特性包括

  • 事件跟踪:实时跟踪用户交互和行为。
  • 会话回放:回放用户会话以了解他们如何导航您的应用。
  • 热图:可视化用户在您的网站上点击和互动最多的区域。
  • 功能标志:在不重新部署代码的情况下为特定用户组启用或禁用功能。

了解更多,请参阅官方文档。

Posthog GIF

探索 Posthog 仓库 ⭐


9. Auth0 by Okta - 认证和授权平台

实现应用认证是必不可少的,知道如何实现认证也能轻松脱颖而出。

使用 Auth0 ,你可以简化流程,实现安全登录、用户管理和多重身份验证,而无需太多努力。

Auth0 的一些关键功能。

  • 单点登录 (SSO) : 使用单一凭证实现在多个应用中的无缝登录。
  • 多因素认证 (MFA) : 通过多种验证方式增加额外的安全性。
  • 基于角色的访问控制 (RBAC) : 根据分配的角色管理用户的权限,实现安全的访问控制。
  • 社交登录集成 : 轻松集成通过 Google、Facebook 和 GitHub 的登录方式。

Auth0 SDK 几乎适用于所有平台和语言。

Auth0 GIF

探索 Posthog 仓库 ⭐


感谢您阅读这份列表文章。

在评论中告诉我,如果你知道其他重要的开源AI工具。✨

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP