1作者: rmcdaniel10 个月前原帖
我曾在一家金融科技公司工作,我们需要一种方法来跟踪长时间运行的流程。<p>我们使用了排队作业,这些作业会检查之前的步骤是否完成,如果没有完成就会重新排队。虽然这种方法有效,但噪音很大,难以追踪,感觉也不太对劲。<p>于是我开始寻找更好的解决方案。<p>就在这时,我发现了Temporal。他们的PHP SDK提供了很好的开发体验。你可以使用yield来实现异步步骤,像写普通代码一样编写工作流,并且它会从上次中断的地方继续。这种感觉很不错。<p>然后我把这个想法带给了DevOps团队。<p>但遭遇了阻碍。<p>它需要运行一个Kubernetes集群,或者支付他们的云服务费用。他们看着我,似乎在想:“我们为什么要做这些事情来运行PHP作业?”<p>我记得当时心里想着……他们可能是对的。<p>我们已经有了Laravel队列,已经有了数据库。也许我们可以在没有繁琐流程的情况下构建类似的东西。<p>于是我开始动手。<p>我保留了Temporal的PHP SDK中的核心思想,使用yield作为协程的检查点,其他的都抛弃了。不需要服务器,不需要集群,也不需要云服务。<p>一个工作流就是一个排队的作业,它会运行到下一个yield。当yield的作业完成后,它会重新排队工作流,重建状态,并从上次中断的地方继续。<p>这就是概念验证。它成功了。我们将一个基本版本投入了生产。<p>但我无法停止思考这个问题。<p>整个过程就像一个拼图。所以我继续深入,增加了副作用、Saga、子工作流……<p>我把我的私人代码库分享给了我在Temporal结识的一位工程师(因为向他问了太多问题)。<p>他对我说:“哇,这真的很酷。你应该发布它。”<p>于是我就这样做了。写了文档,公开了代码库,标记了composer版本。<p>然后我突然明白了:<p>Temporal并不针对PHP开发者。<p>他们的目标是企业客户,大团队,财富500强公司。<p>他们的PHP SDK虽然在维护,但并不是优先事项。它甚至需要Roadrunner,这是在Temporal服务器之上的额外运行时。这对Laravel开发者来说增加了更多的摩擦。<p>与此同时,我这边则是:<p>没有外部服务 没有自定义运行时 只有队列 + 数据库 还有yield<p>现在,Laravel Workflow悄然成为Laravel中长时间运行的编排的默认选择。<p>它在许多相关短语的Google搜索中名列前茅。<p>Temporal的PHP SDK每天的安装量是我的4-5倍。但他们也获得了3.5亿美元的融资。<p>我通过GitHub赞助商回本了我的域名费用。<p>唯一的“失败”是我没有任何可以出售的东西。没有云产品,也没有SaaS的角度。
1作者: swiftlysingh10 个月前原帖
嗨,HN, 我是 Pushpinder,我创建了 Docsingest([https://docsingest.com](https://docsingest.com)),旨在解决在为 LLM 工作流(如 RAG 或微调)准备在线开发者文档时常见的痛点。 抓取开发者文档网页总是很麻烦——你常常会发现导航菜单、页脚、侧边栏,甚至广告混杂在核心内容中。更糟糕的是,提取代码块并保留文档的结构(标题、列表、表格)是非常具有挑战性的,手动清理也十分繁琐。 受到 [GitIngest](https://gitingest.com) 等工具的启发,这些工具有效地处理代码仓库,我希望构建一个类似的工具,专注于直接从网络获取开发文档。Docsingest 接受一个 URL 作为输入,并: 1. *隔离主要内容:* 它智能地去除不需要的样板内容(如页眉、页脚和侧边栏)。 2. *保留丰富的格式:* 它保留代码格式、正确的标题层级、列表和表格,以确保 Markdown 输出结构清晰且适合 LLM。 3. *处理 JS 渲染页面:* 为了准确捕捉现代网站的内容,我们使用无头浏览器(由 [Browserless](https://account.browserless.io) 提供支持)在提取之前渲染 JavaScript。 我在与那些无法生成干净、可用 Markdown 的通用抓取工具斗争了太久后才构建了这个工具。使用 Docsingest,你可以快速将杂乱的开发者文档网页转换为干净、结构化的格式,以优化 LLM 的摄取。 我期待来自社区的任何反馈。 感谢你的关注!
1作者: grvag110 个月前原帖
嗨,HN, 我们正在构建一个轻量级工具,帮助您了解在多云基础设施中运行的内容及其成本。 它提供了一个清晰的仪表板,展示资源(虚拟机、数据库、容器、网络等)和成本明细。 我们之所以开发这个工具,是因为在不同服务提供商之间管理非常混乱——工具分散、视图碎片化,而且没有简单的方法可以在不切换标签的情况下查看所有内容。 这只是我们的最小可行产品(MVP)——它是免费的,设置快速,并且注重清晰而非复杂。 如果您正在处理云资源分散的问题,或者希望在不同环境中获得更好的可见性,乐意分享链接。期待您的反馈! 谢谢!
1作者: mmb10 个月前原帖
这个项目最初是为了在紧急情况下或没有互联网的地区,提供一个易于运行的临时论坛/留言板。我在一台旧路由器上运行它,该路由器使用ddwrt,并且没有连接到互联网。 它仍然是这样,但我添加了一个可选功能,可以从其他实例中提取帖子,我认为这创造了一些有趣的分布式使用案例。将帖子分发到其他实例可以克服仅在内存中运行的一些限制。
4作者: codesiddu10 个月前原帖
嗨,HN,我是Sid。我开发了Browserable,这是一个开源且可自托管的JavaScript库(MIT许可证),用于构建能够执行网络任务、跟踪状态和获取结果的代理:<a href="https:&#x2F;&#x2F;github.com&#x2F;browserable&#x2F;browserable">https:&#x2F;&#x2F;github.com&#x2F;browserable&#x2F;browserable</a>。 它允许你构建能够浏览网站、填写表单和提取信息的代理。目前在Web Voyager基准测试中得分为90.4%。 使用这个库,你可以: - 通过一个命令在本地机器上运行浏览器代理套件 - npx browserable。 - 通过REST API/SDK集成到现有代码中。 - 自托管浏览器代理,并在不依赖于任何单一浏览器、浏览器基础设施或大型语言模型提供者的情况下进行扩展。 它配备了一个用户界面来运行任务,以及一个管理界面来追踪、跟踪和调试大型语言模型调用(及其成本)。支持多个浏览器提供者(Steel、Hyperbrowser、Browserbase)和并发限制。 我们构建Browserable是因为我们喜欢为我们的B2B SaaS初创公司构建AI代理来自动化任务,但我们对设置和维护可靠的自动化过程感到沮丧,即使是简单的任务,因为基础工作并不存在。我们不得不与多个浏览器提供者集成,面临各种并发限制,以及与多个大型语言模型提供者集成,面临各种速率限制,并且没有简单的方法将所有日志关联到单个任务,以分析实现的准确性、延迟和成本。 我们希望能够简化构建、测试和改进代理的过程,而不必从头开始编写所有基础设施。 我们非常想知道你正在构建什么,以及这个库是否对你有用,或者我们如何能让它对你更有用!