通过自然语言表达你的想法。GitHub Spark让任何人都能使用人工智能,为自己创建软件...

我们能否让任何人都能使用人工智能,为自己创建软件?尽管开发者喜欢定制自己的开发环境以提高效率和趣味性,但创建个性化应用程序的复杂性常常阻止他们这样做。
如何使个性化软件的创建变得像定制开发环境一样简单?并让更多人能够轻松实现这种个性化。
shadow:
我今天仔细学习了Github最新发布的Spark介绍。Spark 不是用来生成代码的工具,而是用来生成应用的工具。并且,倡导生成解决问题的“微应用”,微应用聚焦解决单一的问题,而不是大而全,并且是个性化的问题。
在Spark的功能上,有非常多值得学习的新的人机交互的方式和功能点。我把重点信息都做了加粗,分享给大家:

GitHub Spark 简介
GitHub Spark 是一款由人工智能驱动的工具,用于创建和共享微应用(sparks),这些微应用可以根据您的确切需求和偏好进行定制,并可直接从您的桌面和移动设备上使用。无需编写或部署任何代码。
它通过3个主要功能实现:
基于 NL 的编辑器,可轻松描述您的想法,然后随着时间的推移不断完善它们
- 托管运行时的环境,用于托管您的 Spark,并让其访问数据存储、主题和 LLM
- 支持 PWA 的管理后台,让你可以从任何地方管理和启动你的 spark
此外,GitHub Spark 还允许您与他人共享您的 spark,并控制他们的只读或读写权限。然后,他们可以选择收藏 spark ,并直接使用它, 或重新混合它(fork?),以进一步适应他们的偏好。
非常……个性化!
让我们看看它是如何工作的🎬
什么是“微应用程序”?
GitHub Spark 遵循Unix的应用哲学,软件应该专注于完成一个特定的任务,并且要做到最好。这个任务应特别满足用户的需求,无论其使用时长如何。换句话说,软件应简单、专注、高效地解决一个问题,即使这个问题是短暂的或小众的。
(Unix的应用哲学强调软件应专注于做好一件事,通过简单、模块化和可组合的设计来实现高效和灵活的解决方案)
所以“微”并不是指应用程序的价值大小,而是指其功能复杂性的大小。
灵感/案例
以下是使用 GitHub Spark 制作应用的一些灵感。这些灵感包括生活管理工具、学习辅助工具、搞笑动画和新闻客户端。但它们的共同点是:它们的外观和感觉完全符合创作者的期望。不多也不少 ❤️

儿童零花钱追踪器,可以以只读或读写模式(父母)使用,并在达到收入目标时使用 LLM 生成庆祝信息。

一个六岁孩子想象并创造的动画:汽车世界。

一款用于追踪每周卡拉 OK 之夜以及每位受邀嘉宾状态的应用程序。

由一名 10 岁的孩子在学校创建和使用的一款地图应用,允许按名称搜索城市,然后使用 LLM 生成有趣的 tldr 描述。
TL;DR(Too Long; Didn't Read)是对长篇内容的极简总结,通常只有一句话,旨在快速传达核心信息。

一个自定义的 HackerNews 客户端,显示前 20 个帖子,并使用 LLM 总结评论(这真的很有用!)。这是某个团队的日常 HN 驱动程序。
GitHub Spark 主要功能👍
基于 NL 的工具链
创建应用时,您必须知道自己想要什么。不仅仅是总体思路,还有确切的功能、详细的交互行为以及整体外观和感觉。不幸的是,这可能会变得相当复杂,甚至可能让人不知所措,甚至中途放弃。这正是GitHub Spark 要解决的问题!
GitHub Spark 让你从一个简单的想法开始,例如 :“一个跟踪我孩子零花钱的应用程序”。
然后通过“辅助探索”让复杂性慢慢浮现。特别是,它基于 NL 的编辑器旨在让创建过程变得轻松有趣!
—— 四个核心功能:
交互式预览
修订版本
自动历史记录
模型选择
交互式预览
当您在 GitHub Spark 中输入 NL 表达式时,它不仅会生成代码,还会立即运行并通过交互式预览显示它。这种“以应用程序为中心的反馈循环”允许您根据需要,快速地调整细节,直观地了解您的意图时进行迭代:
“嗯,我想我想要在这里添加一个切换按钮!”

修订版本
当您创建或迭代 spark 时,您可以选择请求一组变体。这将生成 3-6 个不同版本的请求,每个版本都有细微但有意义的差别。
你可能知道自己想要某个功能,但不太清楚它的外观或行为,因此获得一些可以启发和扩展思维的想法会很有帮助。就像一个 AI 思想伙伴!
(和你一起在做头脑风暴
要求对模棱两可的修订版本进行修改
自动历史记录
当你迭代 spark 时,每个修订都会自动保存,只需单击一下即可恢复。这样你就可以探索想法(和变体),而不必担心丢失任何进度。更重要的是,你无需自己管理版本控制。这可以实现一种“好奇心驱动的开发”,你可以先有一个想法,然后尝试一下,而不必担心会产生任何负面后果(例如弄乱你的应用程序)。

从协作的角度来看,历史记录也非常引人注目,因为每当有人与您分享火花时,它都会提供一种“语义查看源代码”的形式。在创建 GitHub Spark 时,我们发现我们会自然而然地互相分享新想法,然后立即查看历史记录以了解他们是如何实现的。这几乎就像能够窥视他人的思想,并看到他们序列化的思维过程。
模型选择
创建或修改火花时,您可以从四个 AI 模型中选择一个:Claude Sonnet 3.5、GPT-4o、o1-preview 和 o1-mini。这很棒,因为它允许您尝试一个想法,如果您没有得到预期的结果,您可以撤消并使用完全不同的模型重试。此外,历史记录会跟踪您每次修订使用的模型,这让您可以看到火花随着时间的推移如何演变。

创建新 spark 时选择模型

修改现有火花时选择模型
托管运行时环境
我们将 GitHub Spark 称为“以应用为中心”的工具(而不是“以代码为中心”的工具)。这并不是因为它不允许您查看或编辑代码(它可以!),而是因为它旨在创建可供查看、感受和使用的应用 — 而不是简单地生成代码,然后期望您使用它来执行某些操作(构建、部署、配置数据库等)。
它通过为其工具链添加一个托管运行时环境来实现这一点,该环境围绕四个核心功能构建:
免部署托管
主题化设计系统
持久数据存储
集成模型提示
免部署托管
当你创建或修改 spark 时,更改会自动部署,并且可以在你的桌面、平板电脑或移动设备上运行和安装(通过 PWA)。从这个意义上讲,GitHub Spark 有点像一个微应用云,它将创建、部署和使用软件的行为简化为一个动作:通过自然语言表达你的想法 🚀
主题化设计系统
为了确保您的应用外观和感觉良好,GitHub Spark 包含一组内置 UI 组件和一个可主题化的设计系统。因此,每当您创建新应用时,表单控件、布局和图标等内容看起来都应该是开箱即用的。如果您想进一步调整任何内容,可以使用主题编辑器更改默认的强调色、边框半径、应用间距和颜色主题(浅色/深色)。
持久数据存储
无论是制作待办事项列表、园艺规划器还是井字游戏,大多数有趣的应用都需要存储数据。GitHub Spark 运行时可以满足您的需求,它提供托管键值存储,并自动知道何时使用它。此外,GitHub Spark 还提供数据编辑器,让您轻松查看和编辑 Spark 正在使用的数据。这样,您就可以完全控制任何状态,而无需担心任何细节。
集成模型提示
GitHub Spark 运行时与GitHub Models集成,允许您向 Spark 添加生成式 AI 功能,而无需任何 LLM 知识(例如,总结文档、为儿童睡前应用生成故事)。此外,它还提供了一个提示编辑器,可让您查看 GitHub Spark 生成的提示,并允许您根据需要对其进行调整 - 而无需编辑任何代码。

查看你的 spark 正在使用的 AI 提示,
然后手动编辑一个
呼!这可真不少。但为了让 GitHub Spark 实现愿景:
将应用程序创建成本降至零
我们觉得这个工具链和运行时是绝对必要的。而且我们认为用户会喜欢它的使用体验 🥰
另外我们还在探索以下方向:
扩展协作模式:
例如公共画廊,允许用户对某人在其 spark 分叉中所做的更改进行语义合并、多人游戏
扩展编辑器界面:
例如,提供“X射线模式”,允许总结和调整应用程序的精确行为。
X光模式,该模式允许用户:
1/ 总结应用的整体结构和组件:帮助用户了解应用的各个部分是如何组织和相互联系的。
2/ 调整应用的具体行为和交互:使用户能够精细地控制和修改应用的行为,确保其运行方式完全符合个人需求。
这种“X光模式”旨在为用户提供更深入的理解和更精细的控制,使他们能够更准确地调整和优化他们的微应用(sparks),从而更好地满足特定的使用场景和需求。
扩展运行环境:
例如更多内置组件、更好地与第三方服务集成、实现文件存储和向量搜索
最后,Github提到了:
还有很多我们还没有想到的很酷的东西!
欢迎分享本文,
目前有130人
在Mixlab AI编程社区探索
个性化应用的无限可能~~

原文:
https://githubnext.com/projects/github-spark
相关文章:
通过自然语言表达你的想法。GitHub Spark让任何人都能使用人工智能,为自己创建软件...
我们能否让任何人都能使用人工智能,为自己创建软件?尽管开发者喜欢定制自己的开发环境以提高效率和趣味性,但创建个性化应用程序的复杂性常常阻止他们这样做。 如何使个性化软件的创建变得像定制开发环境一样简单?并让更多人能够轻松实现这种…...
c++的list类
本篇将讲述list类中的各种重要和常用函数(begin()、end()、rbegin()、rend()、empty()、size()、front(&#…...
uniapp数据缓存
利用uniapp做开发时,缓存数据是及其重要的,下面是同步缓存和异步缓存的使用 同步缓存 在执行同步缓存时会阻塞其他代码的执行 ① uni.setStorageSync(key, data) 设置缓存,如: uni.setStorageSync(name, 张三) ② uni.getSt…...
HarmonyOS-权限管理
一. 权限分类 1. system_grant system_grant 为系统授权,无需询问用户,常用的权限包括网络请求、获取网络信息、获取wifi信息、获取传感器数据等。 /* system_grant(系统授权)*/static readonly INTERNET ohos.permission.INTE…...
Github 2024-11-02 Rust开源项目日报 Top10
根据Github Trendings的统计,今日(2024-11-02统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Rust项目10Python项目2Dart项目1RustDesk: 用Rust编写的开源远程桌面软件 创建周期:1218 天开发语言:Rust, Dart协议类型:GNU Affero Genera…...
修改HarmonyOS鸿蒙图标和名字,打包后安装到真机,应用图标丢失变成透明,修改名字也不生效,还是默认的labeL解决方案教程
HarmonyOS鸿蒙打包hap 安装应用到桌面没有图标,用hdc安装到真机,打包后应用图标丢失变成透明,名字也还是默认的label的bug,以下是解决方案 以下是修改方案: 1、修改应用名字: 2、修改应用图标:…...
unreal engine5动画重定向
UE5系列文章目录 文章目录 UE5系列文章目录前言一、下载动画资源二、创建IK Rig(IK绑定) 前言 在Unreal Engine 5.4中,动画重定向(Animation Retargeting)和动作匹配(Motion Matching)是两种不…...
蓝桥杯练习笔记(二十-日期问题)
日期题常见于填空题,关键点涉及闰年的判断和星期几的判断 1.根据间隔天数计算日期 题目来源:CSDN算法技能树 在X星系的广袤空间中漂浮着许多X星人造“炸弹”,用来作为宇宙中的路标。 每个炸弹都可以设定多少天之后爆炸。 比如:…...
jenkins 构建报错 mvn: command not found
首先安装过 maven,并且配置过环境变量 win r ,输入 cmd 键入 mvn -v 出现上图输出,则证明安装成功。 原因 jenkins 没有 maven 配置全局属性, 导致无法找到 mvn 命令。 解决方案 找到全局属性,点击新增,配置 MAVEN_HOME 路…...
Vue computed watch
computed watch watch current prev...
【java】java的基本程序设计结构06-运算符
运算符 一、分类 算术运算符关系运算符位运算符逻辑运算符赋值运算符其他运算符 1.1 算术运算符 操作符描述例子加法 - 相加运算符两侧的值A B 等于 30-减法 - 左操作数减去右操作数A – B 等于 -10*乘法 - 相乘操作符两侧的值A * B等于200/除法 - 左操作数除以右操作数B /…...
数据建模圣经|数据模型资源手册卷3,数据建模最佳实践
简介 本书采用了类设计模式的方式对数据模型进行高度抽象总结,展现了常见的数据模型构建模型等模型的作用、层次、分类、地位、沟通方式,和业务规则。使用一个强大的数据模型模式的数据建模,评估特定与广义模型的优缺点,有助于你改…...
Kafka相关知识点(上)
为什么要使用消息队列? 使用消息队列的主要目的主要记住这几个关键词:解耦、异步、削峰填谷。 解耦: 在一个复杂的系统中,不同的模块或服务之间可能需要相互依赖,如果直接使用函数调用或者 API 调用的方式,会造成模块之间的耦合…...
network HCIE认证
#1 ip地址设置 ip add 192.168.1.1 255.255.255.0 ip add 192.168.1.2 255.255.255.0 #2 DHCP 交换机上配置 system-view //进入系统配置 dhcp enable int g0/0/1 //接入接口管理 dhcp select interface //配置dncp选择接口 #3 DNS域名系统 int g0/0/1 dhcp server dn…...
造纸粉体分散机、改性包覆机、改性打散机
包覆改性机在造纸填料中的应用是近年来造纸行业技术创新的一个重要方向。通过包覆改性,可以改善填料的表面性质,提升其在纸张中的留着率和分布均匀性,进而增强纸张的性能,降低生产成本。以下是包覆改性机在造纸填料中的具体应用及…...
npm入门教程1:npm简介
一、基本概述 定义:npm是一个开源的JavaScript包管理器,它允许开发者下载、安装、发布和管理Node.js包。地位:npm是Node.js生态系统中不可或缺的一部分,为开发者提供了丰富的第三方库和工具。起源:npm由Isaac Z. Schl…...
Vue3使用AntV | X6绘制流程图:开箱即用
x6官方地址X6图编辑引擎 | AntV 官方文档仔细地介绍了很多丰富的功能,这里的demo可以满足基本的使用,具体拓展还需要仔细看文档内容 先上效果图 1、安装 通过 npm 或 yarn 命令安装 X6。 # npm npm install antv/x6 --save# yarn yarn add antv/x6 …...
grpc 快速入门
gRPC 是一个现代的远程过程调用(RPC)框架,由 Google 开发。它使用 HTTP/2 作为传输协议,并采用 Protocol Buffers(protobuf)作为接口描述语言(IDL)。gRPC 提供高效的通信、语言无关性…...
layui 实现 城市联动
<div class"layuimini-container"><form id"app-form" class"layui-form layuimini-form"><div class"layui-form-item"><label class"layui-form-label">标题</label><div class"la…...
C++11标准模板(STL)- 常用数学函数 - 分类及比较 - 对给定的浮点值分类(std::fpclassify)
常用数学函数 对给定的浮点值分类 std::fpclassify 定义于头文件 <math.h> #define fpclassify(arg) /* implementation defined */ (C99 起) 归类浮点值 arg 到下列类别中:零、非正规、正规、无穷大、 NaN 或实现定义类别。该宏返回整数值。 忽略 FLT_EV…...
国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...
【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...
线程同步:确保多线程程序的安全与高效!
全文目录: 开篇语前序前言第一部分:线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分:synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分ÿ…...
Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)
目录 1.TCP的连接管理机制(1)三次握手①握手过程②对握手过程的理解 (2)四次挥手(3)握手和挥手的触发(4)状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...
华为OD机试-食堂供餐-二分法
import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...
从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...
算法笔记2
1.字符串拼接最好用StringBuilder,不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...
在Ubuntu24上采用Wine打开SourceInsight
1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...
华为OD机考-机房布局
import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...
基于PHP的连锁酒店管理系统
有需要请加文章底部Q哦 可远程调试 基于PHP的连锁酒店管理系统 一 介绍 连锁酒店管理系统基于原生PHP开发,数据库mysql,前端bootstrap。系统角色分为用户和管理员。 技术栈 phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 注册/登录/注销 2 个人中…...
