GitHub 宣布了一款名为 GitHub Spark 的重大新产品——允许用户仅通过自然语言描述来构建和分享微应用,极大地降低了软件开发的门槛。用户不需要具备深厚的编程知识,系统会自动处理所有技术细节,并实时展示应用构建的过程,并构建“微应用”或“Spark”的新 AI 工具。要构建微应用,用户从初始提示开始,然后 Spark 会在几秒钟内展示实时预览。然后,用户可以通过与机器人来回互动来微调它。
GitHub Spark
我们能否通过使用 AI 和全托管的运行时环境,使任何人都能为自己创建或改编软件?
构建和共享个性化微型应用(“sparks”)
作为开发者,我们热衷于自定义自己的环境,构建适合我们独特偏好和工作流的工具。这不仅提升了生产力和操作的舒适度,还让我们的日常工作更加个人化。而当一件事变得个性化时,通常会更加有趣。
然而,尽管我们会投入时间来管理 dotfiles、编写自动化脚本或配置编辑器设置,但我们有多少次放弃了制作自己应用的想法呢?并不是因为我们不能构建它们,而是因为它们看起来过于短暂、特定或耗时,不值得优先考虑。😩
这正是当今软件的一个讽刺之处:我们桌上和口袋里的电脑非常强大,却并没有那么“个性化”。相反,我们依赖的往往是由他人设计的通用工具,因为创建专属应用的复杂性太高。
这就引发了两个有趣的问题:我们如何让个性化软件像个性化开发环境一样简单?然后,如何使我们身边的人也能轻松实现这种个性化?不仅因为这是必要的——而是因为这可能会很有趣🙌
介绍 GitHub Spark
GitHub Spark 是一个 AI 驱动的工具,用于创建和共享微型应用(“sparks”),可以根据您的需求和偏好进行量身定制,且能直接在桌面和移动设备上使用。无需编写或部署任何代码。
它通过三部分紧密集成的组件实现了这一点:
- 一个 基于自然语言的编辑器,可以轻松描述您的想法,并随时间进行完善
- 一个 托管的运行时环境,用于托管您的 sparks,并提供数据存储、主题设置和大语言模型(LLM)的访问
- 一个支持 PWA 的控制面板,让您可以随时随地管理和启动您的 sparks
此外,GitHub Spark 允许您与他人共享您的 sparks,并控制他们是否拥有只读或读写权限。用户可以选择收藏该 spark——直接使用或 remix 它,以进一步适应他们的偏好。毕竟……个性化!
现在让我们看看它是如何工作的 🎬
什么是“微应用”?
GitHub Spark 订阅了Unix 哲学,它主张软件可以专注于一件事,并做到极致——特别是为你服务,只在有用的那段时间内存在。因此,“微”并不指应用价值的大小,而是指其功能复杂度的设计初衷。
例如,以下是 GitHub Spark 团队在开发 GitHub Spark 的过程中制作(并使用!)的一些 sparks。这些应用涵盖生活管理工具、学习辅助工具、有趣的动画和新闻客户端等。但它们都有一个共同点:它们的外观和感觉完全符合创建者的意图。不多不少,刚刚好 ❤️
一个自定义的 HackerNews 客户端,显示前 20 条帖子,并使用大语言模型总结评论线程(非常有用!)。这是团队每天的 HN 驱动器
在以上背景下,让我们深入讨论 GitHub Spark 的主要组件的“是什么?”和“为什么?”👍
基于自然语言的工具链
在创建应用程序时,你需要清楚地知道自己想要什么。不仅是一个大概的想法,还需要确切的功能集、详细的交互行为以及整体的外观和体验。不幸的是,这可能会变得相当复杂,甚至让一些人望而却步。这正是我们希望解决的问题!
GitHub Spark 缓解了这一问题,允许你从一个简单的想法开始(例如“一个用于记录孩子零花钱的应用”),然后通过“辅助探索”逐步增加复杂度。特别是,它的自然语言编辑器旨在使向前推进变得轻松且充满乐趣,主要通过以下四项核心迭代功能实现:
- 交互式预览
- 修订变体
- 自动历史记录
- 模型选择
交互式预览
当你在 GitHub Spark 中输入自然语言表达式时,它不仅生成代码,还会立即运行并通过交互式预览显示。这种“以应用为中心的反馈循环”允许你指定的细节可以多也可以少,然后随着视觉化地逐步理解你的意图进行迭代(“嗯,我想我这里需要一个切换按钮!”)。
修订变体
当你创建或迭代 spark 时,可以选择生成一组变体。这将生成 3-6 个不同版本的请求,每个版本有细微但有意义的差异。由于你可能知道自己想要某个功能,但不确定它应该如何外观或行为,因此获取启发和扩展想法的建议可能会很有帮助,就像一个 AI 思维伙伴!
自动历史记录
当你迭代 spark 时,每次修订都会自动保存,并可以通过单击恢复。这使你可以在不必担心丢失任何进展的情况下探索想法(和变体)。更重要的是,不需要自己管理版本控制。这种方式支持“好奇心驱动开发”,你可以想到一个点子,然后试试看,而无需担心会对应用造成负面影响(例如弄乱应用)。
从协作的角度来看,历史记录也很吸引人,因为当有人与你共享 spark 时,它提供了一种“语义查看源代码”的形式。在创建 GitHub Spark 的过程中,我们发现彼此会自然地分享新想法,然后立即查看历史记录,看看他们是如何实现的。这几乎就像能够一窥他人思想的序列化过程。
模型选择
当你创建或修改 spark 时,可以从四个 AI 模型中选择:Claude Sonnet 3.5、GPT-4o、o1-preview 和 o1-mini。这样做的好处在于,如果没有得到预期的结果,可以撤销并使用完全不同的模型重试。此外,历史记录会跟踪每次修订所使用的模型,从而让你可以观察到 spark 随时间的演变。
托管运行环境
我们将 GitHub Spark 称为“应用程序为中心”的工具(与“代码为中心”的工具相对)。并不是因为它不允许你查看或编辑代码(它确实可以!),而是因为它旨在创建供人们观看、体验和使用的应用程序,而不仅仅是生成代码,然后让你自己进行构建、部署、配置数据库等操作。
GitHub Spark 通过托管运行环境的四大核心功能实现这一点:
- 无需部署的托管
- 可自定义主题的设计系统
- 持久化数据存储
- 集成的模型提示
无需部署的托管
当你创建或修改 spark 时,更改会自动部署,并可在桌面、平板或移动设备(通过 PWA)上运行和安装。从这个意义上来说,GitHub Spark 有点像一个微型应用云,将创建、部署和使用软件的过程简化为一个动作:通过自然语言表达你的想法 🚀
可自定义主题的设计系统
为了确保你的应用看起来美观,GitHub Spark 提供了一套内置的 UI 组件和可自定义主题的设计系统。因此,每次创建新应用时,表单控件、布局和图标等都默认显得十分精致。如果想进一步调整,你可以使用主题编辑器更改默认的强调色、边框半径、应用间距以及颜色主题(浅色/深色)。
持久化数据存储
无论你在制作待办清单、园艺规划器或井字游戏,大多数有趣的应用都需要存储数据。GitHub Spark 的运行时为你提供了托管的键值存储,并自动确定何时使用它。此外,GitHub Spark 提供了一个数据编辑器,让你轻松查看和编辑 spark 使用的数据。这样,你可以完全掌控应用的状态,而无需担心细节。
集成的模型提示
GitHub Spark 运行时与 GitHub Models集成,允许你在 spark 中添加生成式 AI 功能,而无需具备 LLM 知识(例如,摘要生成、儿童睡前故事生成)。此外,它还提供了一个提示编辑器,让你查看 GitHub Spark 生成的提示,并在需要时进行调整——无需编辑代码。
呼!内容真不少。不过,为了实现 GitHub Spark 的目标(将应用创建成本降为零),我们认为这样的工具链和运行环境是绝对必要的。我们相信用户会喜欢它的使用体验 🥰
接下来是什么?
作为一个技术预览,GitHub Spark 还处于非常早期的阶段,有很多待完成的事项。但在接下来的几个月里,我们期待从等待名单中邀请用户加入,并每周与他们密切互动 每周更新。如果你有兴趣加入我们的旅程,请查看 FAQ,并加入 GitHub Next 的 Discord 服务器 👋
如果你对我们未来的重点好奇,可以期待以下方向的探索:
- 扩展协作方式(例如,公共画廊、允许用户在 spark 的分支中执行语义合并、多用户模式)
- 扩展编辑器功能(例如,提供“X 光模式”,允许总结和调整应用的精确行为)
- 扩展运行时环境(例如,更多内置组件、更好的第三方服务集成、文件存储和向量搜索支持)
- 还有许多我们甚至还没想到的酷炫功能!