作为开发人员,我们经常对使用哪些工具来构建我们的下一个(侧面)项目感到困惑。
即使你足够认真地想要打造一款产品,问题仍然存在。
因此,我将介绍 9 个开源库,它们将真正为您未来的项目提供强大动力!
出发啦🚀
1. Crawlee – 网页抓取,简单而强大
Crawlee是一个完整的网页抓取和浏览器自动化库,可以帮助我们快速高效地构建可靠的爬虫。
利用其内置的防阻塞功能,您可以构建类似人类的机器人,从而减少被阻塞的机会。
无论您使用的是Node.js还是Python,Crawlee都为 HTTP 和无头浏览器抓取提供了统一的接口,使其能够适应各种抓取任务。
您可以观看介绍视频来了解更多信息:
开始使用 Crawlee 最简单的方法是使用Crawlee CLI。运行以下命令:
npx crawlee create my-crawler
这将建立一个新项目,其中包含您开始所需的所有依赖项。
如果您想将 Crawlee 添加到您的项目中,请运行以下命令:
npm install crawlee playwright
现在,这里有一个简单的例子:
import { PlaywrightCrawler } from 'crawlee';
// PlaywrightCrawler crawls the web using a headless browser controlled by the Playwright library.
const crawler = new PlaywrightCrawler({
// Use the requestHandler to process each of the crawled pages.
async requestHandler({ request, page, enqueueLinks, pushData, log }) {
const title = await page.title();
log.info(`Title of ${request.loadedUrl} is '${title}'`);
// Save results as JSON to `./storage/datasets/default` directory.
await pushData({ title, url: request.loadedUrl });
// Extract links from the current page and add them to the crawling queue.
await enqueueLinks();
},
// Uncomment this option to see the browser window.
// headless: false,
// Comment this option to scrape the full website.
maxRequestsPerCrawl: 20,
});
// Add first URL to the queue and start the crawl.
await crawler.run(['https://crawlee.dev']);
// Export the whole dataset to a single file in `./result.csv`.
await crawler.exportData('./result.csv');
// Or work with the data directly.
const data = await crawler.getData();
console.table(data.items);
此示例抓取页面、提取数据并入队链接。您可以从文档中了解更多信息。
另外,我还使用 Crawlee for Python 构建了一个 LinkedIn Scrapper,您也可以阅读一下:
如何使用 Crawlee 在 Python 中创建 LinkedIn 职位爬取工具
Arindam Majumder for Crawlee ・ 2024 年 10 月 17 日
#python #webdev #programming #beginners
他们在GitHub上拥有 15k+ 颗星和 110+ 个版本,因此他们在不断发展和改进。
2. Encore – 类型安全应用程序的后端框架
管理可扩展应用程序的云服务并不容易。复杂的基础设施管理、不一致的 API 和分散的 DevOps 流程往往会让事情变得一团糟。
Encore通过提供集成类型安全后端框架、自动基础设施配置和 DevOps 自动化的统一开发平台简化了这种混乱。
它有 Golang 和 Typescript 版本。您可以观看简介视频了解更多信息:
使用Encore,您可以使用微服务、Postgres 和 Pub/Sub 等原语创建可用于生产的后端,而无需通常的复杂性和 DevOps 工作。
通过安装 CLI 开始使用 Encore。
curl -L https://encore.dev/install.sh | bash
然后使用 encore CLI 创建一个应用程序:
encore app create
这将配置您的免费帐户,允许您选择应用程序的名称并选择 Hello World
模板。
然后,这将使用您选择的应用程序名称在新文件夹中创建一个带有简单 REST API 的示例应用程序。
在编辑器中打开文件并转到your-app-name/hello/hello.ts
:
import { api } from "encore.dev/api";
export const world = api(
{ method: "GET", path: "/hello/:name", expose: true },
async ({ name }: { name: string }): Promise<Response> => {
return { message: `Hello ${name}!` };
},
);
interface Response {
message: string;
}
在这里,我们通过将常规异步函数包装在对的调用中来定义 API 端点api
。
Encore 自动处理身份验证、HTTP 路由、请求验证、错误处理、可观察性、API 文档等。
有关更多信息,你可以参考他们的 文档。也可以加入他们的Discord 社区以获取最新信息。
3. Taipy——使用 Python 构建 AI Web 应用程序
您是否曾经想过构建一个简单的 AI 项目,而无需使用前端框架使其复杂化?
如果是的话,这个工具就适合您。
Taipy是一个开源库,用于在 Python 中更快地构建可用于生产的 AI 应用程序。它可让您快速从简单的试点项目过渡到可用于生产的 Web 应用程序。
它使用 Python 命令构建组件、图形界面和仪表板。它主要用于数据驱动的项目,是处理大型数据集的理想选择。
Taipy非常适合复杂的工作流程,提供节点来有效地处理它们,并且它与 pandas 集成,允许您直接在项目内操作数据。
您可以很快开始使用 Taipy,运行以下命令:
pip install taipy
我们可以使用Taipy通过以下代码创建 GUI :
from taipy.gui import Gui
import taipy.gui.builder as tgb
from math import cos, exp
value = 10
def compute_data(decay:int)->list:
return [cos(i/6) * exp(-i*decay/600) for i in range(100)]
def slider_moved(state):
state.data = compute_data(state.value)
with tgb.Page() as page:
tgb.text(value="# Taipy Getting Started", mode="md")
tgb.text(value="Value: {value}")
tgb.slider(value="{value}", on_change=slider_moved)
tgb.chart(data="{data}")
data = compute_data(value)
if __name__ == "__main__":
Gui(page=page).run(title="Dynamic chart")
欲了解更多详细信息,您可以查看他们的文档。
GitHub上有超过 16,000+ 颗星,它拥有强大且不断壮大的社区,请为该项目加星以表示您的支持:
4. KitOps——灵活管理 AI 模型
KitOps是一个开源工具,旨在统一数据科学家、开发人员和 SRE 管理和协作 AI/ML 模型、源代码、数据集和其他工件的方式。
KitOps为 AI/ML 模型管理带来了全新的灵活性和效率,通过使用 OCI 标准实现了最大程度的兼容性和协作,从而改变了团队打包、版本化和部署资源的方式。
它具有一套强大的功能:
✅ 将模型、数据集、配置和代码打包为符合 OCI 的 ModelKit,以便于版本控制。
✅ 与任何符合 OCI 标准的注册表兼容,以实现跨 AI/ML 项目的灵活性。
✅ 基于 YAML 的配置,用于微调 LLM 和创建 RAG 管道。
探索文档以了解为什么 KitOps 成为 AI/ML 工作流程中的必备功能!
KitOps还可以跨任何符合 OCI 标准的注册表灵活管理模型、数据集和代码,使其成为从事小型项目和大型企业 AI 应用程序的开发人员和 MLOps 团队的理想选择。
✅ 使用 OCI 标准打包和版本化模型、数据集和代码。
✅ 自动化模型部署和测试。
✅ 通过工件签名追踪出处并保护模型资产。
✅ 与现有的 CI/CD 工作流程无缝集成。
KitOps正在随着社区的不断壮大而积极发展 - 加入他们的Discord或在GitHub上为他们加星标,以保持更新并为这个激动人心的项目做出贡献!
5. CopilotKit——轻松构建应用内 AI 代理
如果您想在您的应用程序中添加 AI,CopilotKit可能是最简单且最适合生产的方法。
CopilotKit是用于构建应用内 AI 副驾驶的领先、最强大且最易于使用的开源框架。您可以使用 Copilotkit 提供的简单组件构建应用内 AI 聊天机器人和应用内 AI 代理。
一些突出的特点:
✅应用内 AI 聊天机器人:使用简单的即插即用组件将 AI 聊天机器人添加到您的应用,包括对无头 UI 的支持,使其用途极为广泛。
✅副驾驶可读状态:此功能允许副驾驶访问和解释应用程序状态,从而使 AI 助手更具情境感知能力和响应能力。
✅副驾驶行动:让您的副驾驶根据用户输入和应用程序上下文直接在应用程序内执行任务并采取行动。
他们还提供内置(完全可定制)的 Copilot 原生 UX 组件<CopilotKit />
,如<CopilotPopup />
、、、<CopilotSidebar />
。<CopilotTextarea />
动态图片
如果您曾经尝试在 React 应用程序中集成代理,您就会知道它有多么棘手且耗时!
CopilotKit最近推出了Co-Agents来解决此问题。
Co-Agents是一套功能强大的工具集,用于使用 LangGraph 代理构建 Agent-Native 应用程序。它旨在帮助您将 LangGraph 代理深度集成到 React 应用程序中,突破 AI 原生 UX 的极限。
您可以观看此视频来了解使用合作代理可以做什么:
我还使用 CopilotKit 构建了一个 AI 驱动的调度应用程序,您可以在这里阅读:
🧑💻 我是如何打造世界上最好的 NextJS AI 调度应用程序的 🤖✨
Arindam Majumder for CopilotKit ・ 2024 年 10 月 24 日
#webdev #ai #javascript #programming
CopilotKit 在GitHub上有 12.6k+ 颗星,且正在持续更新,获得了更广泛的社区支持和信任。
6. Tolgee – 基于网络的本地化平台
国际化和本地化对于吸引全球受众至关重要,但手动管理这两者可能非常耗时。
这正是托尔吉可以发挥作用的地方。
Tolgee是一个开源本地化平台,可以非常轻松地将您的应用程序翻译成任何语言,而无需修改您的代码。
它非常适合网络、移动甚至桌面应用程序,采用开发人员优先的方法设计,从头到尾简化本地化流程。
它具有一系列强大的功能:
✅上下文翻译:查看与应用中显示的完全一样的翻译。
✅管理和跟踪翻译密钥:通过保持本地化密钥的顺序来节省时间。
✅设置角色和权限:控制谁有权访问什么,以实现更有效的协作。
✅可通过插件扩展:根据需要轻松将 Tolgee 与其他工具和服务集成。
Tolgee还提供 SDK、REST API 和 CLI,使跨 JavaScript、移动和后端环境的本地化变得更加容易。
你可以加入他们的Slack 社区或者在Github上为他们点赞:
7. OPAL——策略引擎的管理层
OPAL是一个开源管理层,旨在与开放策略代理 (OPA) 和 AWS Cedar 等策略引擎协同工作。
如果您是从事具有复杂访问控制的大型项目的开发人员,OPAL可以简化跨团队或用户组管理权限的过程。
它实时检测策略和策略数据的变化,确保您的应用的授权层保持最新。
无论您的数据是通过 API、Git 还是第三方服务发生变化,OPAL 都会自动将必要的策略和授权数据同步到您的服务,并提供适当的访问流。
现在,让我们来看看OPAL的一些功能和用例:
✅实时权限更新: OPAL 自动实时授予或撤销权限,无需跨应用程序手动访问更新。
✅策略即代码:开发人员可以将策略编写为代码,从而更易于版本控制、审查和管理,从而实现一致的策略处理。
✅云原生集成: OPAL 可轻松与 AWS 或 Kubernetes 等基于云的微服务集成,从而简化安全和自动化的策略更新。
✅细粒度授权: OPAL 支持精准的端到端授权,并兼容多种策略语言和分散数据源,使其成为复杂的分布式系统的理想选择。
该工具对于向您的项目添加实时权限更新非常有帮助,同时还允许您轻松地审查和管理大型应用程序中不同级别的用户角色。
它在GitHub上有4.5k 个星标,拥有强大的社区,加入他们的Slack或为该项目加星标以表示您的支持:
8. ChartDB——即时可视化数据库
ChartDB 是一个功能强大的基于 Web 的工具,可帮助开发人员快速直观地可视化和管理他们的数据库模式。
每当我需要了解或设计数据库时,ChartDB 都是我轻松实现模式可视化的首选解决方案。
ChartDB提供了一系列基本功能:
✅即时架构导入:运行单个“智能查询”即可立即以 JSON 格式检索数据库架构。无论您是记录、协作还是深入了解数据结构,此功能都可以节省时间。
✅由 AI 驱动的迁移导出: ChartDB 的 AI 驱动导出可让您生成针对目标数据库方言定制的 DDL 脚本,从而实现 MySQL、PostgreSQL、SQLite 等数据库之间的无缝迁移。
✅交互式模式编辑:在 ChartDB 的编辑器中轻松微调模式布局。调整结构、添加注释,使最复杂的数据库结构的可视化更清晰、更易于管理。
ChartDB 的仪表板可帮助您在一个地方有效地控制和监控您的模式可视化。
✅ 实时查看和管理多个数据库模式。
✅ 自定义模式布局并以 SQL 或图像格式导出,以便于共享。
✅ 使用 AI 驱动的 DDL 脚本生成顺利执行数据库迁移。
使用 ChartDB,您可以简化数据库设计和迁移任务。
今天查看 ChartDB 并看看它如何改变您使用数据库的方式!
9. Stack Auth – 管理用户身份验证
我们列表中的最后一个工具是 Stack Auth,它是 Auth0 和 Clerk 的开源替代品。如果您希望集成自托管、可自定义的用户身份验证系统,Stack Auth 是一个绝佳的选择,因为它的自托管版本完全免费。
Stack Auth广泛支持单点登录 (SSO)、OAuth 和多因素身份验证 (MFA) 等功能。
它特别适合需要避免供应商锁定或降低与第三方身份验证服务相关的成本的项目。
自托管能力可确保敏感的用户数据保留在您的基础架构内,为具有严格合规性需求的应用程序提供增强的安全性。
值得注意的一点是,Stack Auth提供了一个可定制的自托管身份验证系统,使开发人员可以轻松处理用户访问。
另一方面,OPAL专注于实时策略管理,确保授权规则与不断变化的应用程序要求保持一致。
就是这样!我尝试介绍各种工具。如果你知道其他很棒的工具,请在评论中写下来!