返回首页
最新
嘿,HN,
我创建了Trip Mate,因为我发现租车公司在需要搬迁车辆时,通常会提供非常便宜(有时甚至免费的)单程露营车旅行。这些优惠分散在多个租车平台上,导致很难高效找到它们。
最有趣的技术挑战是为多个租车平台创建强大的爬虫,每个平台都有其独特的数据结构和特点。我通过开发一个灵活的Python爬虫框架,并结合PocketBase实时存储和提供数据来解决这个问题。前端使用Next.js,提供流畅的用户体验,并通过Telegram或Discord即时通知。
实际上,我自己也通过我的爬虫找到了一个租车旅行,并且参加了!
你现在可以免费试用,无需注册。
我非常感谢你的反馈,并乐意深入探讨任何技术细节!
你好,黑客们!
我想分享一个我和我的团队成员正在进行的个人项目。这个项目的核心思想是构建一个多语言的计算图,同时让你能够在本地机器上快速部署一个迷你FaaS(函数即服务)平台。换句话说,你可以使用本地框架和服务器,轻松地混合和匹配来自不同来源(甚至是不同第三方工具)的代码。我们将这个项目称为SPL。
这个想法是如何产生的呢?
在处理一个复杂模型的过程中,我们意识到需要结合来自不同语言、早期项目中提取的代码和工具。我们有独立的数据库查询、几种根本不同的大数据集预处理方法、一个两阶段的训练过程,以及对最终模型的评估和验证。
我们考虑了像Airflow、Dagster和Prefect等知名工具。然而,它们在某些简单场景下显得有些笨重,并且不适合快速原型开发。此外,我们的数据集的一部分需要使用C++进行更底层的处理,而不是标准的Python。这就是我们产生这个个人项目想法的原因——希望能够无缝地将那些本来不兼容的代码结合在一起,并且允许我们在团队内部分享我们的工作。基本上,我们有几个关键目标:
1. 构建一个由函数或工具组成的连接计算图,无论它们的语言或依赖关系如何。
2. 支持这些图的本地和远程执行(以便团队可以共享他们的工作)。
3. 使得只运行图的一部分成为可能,保持之前步骤的状态和结果,以简化新方法的测试。
一些实现细节
计算图是一个有向的、连接的图,包含节点(函数或工具)和它们之间的链接(输入和输出)。每个节点接受输入参数,执行特定任务,然后将结果传递给下一个节点。
我们的方法涉及一个特定语言的框架——如果我们正在运行代码——以及一个处理FaaS部分的服务器,协调图中的节点,并正确传递工件。
我们选择为Python构建SPL框架的第一个版本,因为这是我们使用最多的语言。最终结果将是一个库,让你可以直接在Python笔记本中直观地创建计算图。
为了管理计算图本身——添加或删除节点、保存结果以及仅运行某些部分——我们决定采用类似于PyTorch的机制。在PyTorch中,你通过顺序添加层到`nn.Sequential()`来构建模型。
迷你FaaS
在我们看来,最酷的功能之一是你可以快速在自己的机器上启动一个迷你FaaS。如果你的计算机可以访问互联网,你的函数和图将立即对其他用户可用。
目前,SPL服务器支持:
- 用于远程执行函数的HTTP API。
- 以JSON格式导入和导出图。
- 任务协调和分布式结果缓存。
- 一个简单的Web界面,用于查看和编辑图。
SPL的可能用例:
1. 本地开发:构建图和函数,可以在不同项目中重用,而无需不断复制代码。
2. 生产使用:将业务逻辑和基础设施分开,轻松进行零停机时间的更新。
3. 个人FaaS(包括函数市场):有可能将你的工作发布给他人(包括货币化),只交付结果而不是整个代码库。
4. 可视化业务流程:服务器支持图形渲染,并显示输入和输出端口,这对于高层次的项目管理非常方便。
我为什么要写这篇文章?
我们非常希望听到你的想法:
- 你是否遇到过类似的挑战?
- 这样的工具对你有用吗?
- 你希望在这样的项目中看到哪些功能?
我们期待在评论中讨论这些想法!