LLM 实现Malleable 软件

news2025/4/12 8:25:34

All computer users may soon have the ability to author small bits of code. What structural changes does this imply for the production and distribution of software?

图片

如果每个终端用户都能修改一部分代码, 这个将会对软件的生产和分发有何重大改变?

来源:https://www.geoffreylitt.com/2023/03/25/llm-end-user-programming.html

所有计算机用户都将有能力从头开始开发小型软件工具,并描述他们希望对已在使用的软件进行的修改。换句话说,LLM 将代表对最终用户编程的工具支持的重大变化:普通人能够充分利用计算机的一般功能,而无需借助常规编程的复杂性。

到目前为止,这一愿景的瓶颈在于将模糊的意图转化为正式的可执行代码;现在,由于 LLM,这一瓶颈正在迅速打开。

人们使用软件的方式发生一些令人惊讶的变化:

  • 一次性脚本

    :普通计算机用户的人工智能每天会创建和执行数十次脚本,以执行数据分析、视频编辑或自动执行繁琐的任务等。

  • 一次性 GUI:

    人们使用 AI 创建整个 GUI 应用程序仅用于执行单个特定任务 - 仅包含他们需要的功能,没有任何膨胀。

  • 自行开发而非购买:

    企业内部开发更多满足其定制需求的软件,而不是购买现成的 SaaS,因为现在根据用例定制软件更便宜。

  • 修改/扩展:

    消费者和企业要求扩展和修改其现有软件的能力,因为现在可以更轻松地指定新功能或调整以匹配用户的工作流程。

  • 重组:

    从您最喜欢的不同应用程序中选取最好的部分,然后创建一个将它们组合在一起的新混合体。

聊天 Chatbot

从一个基本问题开始:在 LLM 时代,用户交互模型将如何发展?具体来说,聊天机器人可能会接管哪些类型的任务?

聊天 UI 无法很好地完成许多任务,我们仍然需要图形用户界面。然后我将讨论 LLM 帮助我们构建 UI 的混合交互模型。

最后,我们将到达设计空间中我认为有趣的一点:open-ended computational media, 用户可直接学习和塑造,LLM是该媒体的合作者。到那时,这张奇怪的图表就会有意义了 🙃:

图片

GUI(图形)界面→ LUI(Language) → CUI(Command)  == 短期内 LUI 无法替换掉 GUI!

当我们使用一个好的工具时——锤子、画笔、滑雪板或汽车方向盘——我们会在潜意识中与工具融为一体。我们可以进入心流状态,运用肌肉记忆,实现精细控制,甚至产生创造性或艺术性的输出。**无论机器人有多好,聊天永远不会让人感觉像开车。**特里·维诺格拉德和费尔南多·弗洛雷斯在 1986 年出版的《理解计算机和认知》一书中详细阐述了这一点:

In driving a car, the control interaction is normally transparent. You do not think “How far should I turn the steering wheel to go around that curve?” In fact, you are not even aware (unless something intrudes) of using a steering wheel…The long evolution of the design of automobiles has led to this readiness-to-hand. It is not achieved by having a car communicate like a person, but by providing the right coupling between the driver and action in the relevant domain (motion down the road).

演示

通过 Slack 和顾问团队或者通过一个 app 解决问题差别, 来看看LLM 能做什么?

目的: 你需要分析一组数据,得到一些你销售预测的指标。

直接问顾问团队

  1. 好处: 灵活

  2. 坏处:

    1. 反馈慢:小时或者天

    2. 昂贵

图片

自助平台

  1. 好处:

    1. 迅速

    2. 便宜

  2. 坏处: 不灵诺

图片

基于这个比较, LLM方案:

图片

更甚, 有一个 LLM 开发人员团队可供使用(注意没有开发者了),会怎么样?

  1. 首先,我们可以向 LLM 询问如何使用该应用程序,这可能比阅读文档更容易。

  2. LLM 开发者(不是人类开发者) 可以超越这一点并更新应用程序。

图片

当我们提供有关添加新功能的反馈时,我们的请求不会在无限队列中丢失。他们会立即做出回应,我们只需要来回沟通即可实现该功能。当然,新功能不需要发送给每个人;它只需为我们的团队启用即可。

请注意,这只是一个粗略的设想。我们缺少很多关于如何将这个模型变成现实的细节。当今软件构建的许多细节使得这种即时定制变得相当具有挑战性

两个循环:

  1. 快速直接的操作界面与工具融为一体, 借助LLM 助手

  2. 现有应用程序的极限时,有意识地向 LLM 开发器 提供反馈并构建新功能

Excel

这种双重互动循环是否让你想起了什么?

想想电子表格是如何工作的。如果你在电子表格中有一个财务模型,你可以尝试更改单元格中的数字来评估某种情况——这就是直接操纵的内循环。

但是,您也可以编辑公式! A spreadsheet isn’t just an “app” focused on a specific task; it’s closer to a general computational medium which lets you flexibly express many kinds of tasks.

图片

我们可以像这样绘制电子表格交互的双循环。您可以在电子表格中编辑数字,但也可以编辑公式,这会编辑工具

原始方式

图片

  1. 优点:

    1. 迅速

    2. 便宜

    3. 灵活 (部分)

  2. 缺点:无

本地专家

平台由微软开发,但本地开发人员能提供更直接的帮助来定制工具,由于同属一个团队,获取支持更为便捷。用户通过参与开发过程,会逐渐学会更多电子表格的使用技巧(用户心智培养和习惯教育)。

图片

当然你可能没有这些本地开发者, 或者专家, 这个时候智能 baidu/google 了,想象你大海捞针一样在网络上寻找 excel 的一些公式!

**如果让 LLM 扮演本地开发人员的角色会怎么样?**也就是说,用户主要负责创建电子表格,但在需要时寻求一些公式的技术帮助?LLM 不仅会创建完整的解决方案,还会教用户下次如何自己创建解决方案。

LLM 开发器

图片

这幅图展示了一个我认为非常引人注目的世界。

  1. 内交互循环,充分利用了直接操作的全部功能(GUI)。

  2. 外部循环,用户还可以在开放式媒介(open-ended medium)中更深入地编辑他们的工具

他们通过 AI 的辅助来编辑工具,同时提高自己使用工具能力。随着时间的推移,他们可以学习公式的基础知识或工作原理如:VLOOKUP。这些结构化知识可以帮助用户思考该工具的可能用例,还可以帮助他们审核 LLM 的输出。

随着用户对工具越来越熟悉,他们对人工智能的依赖会随着时间的推移逐渐减少

到目前为止,开放式计算媒体(open-ended computational media)的设计一直受到LLM编程瓶颈的限制。

LLM 一直在试图解决高效灵活地将自然语言转化为代码!大家可以看到 Claude Artificat, OpenAI canvas 都在尝试解决这部分问题, 包括各种编程助手,如 cursor, windsurf, blot.new continue.dev 等等!

PS: 根据美国业界的说法:如果一个模型能够在生成良好代码方面表现更出色,那么通常它也能对非代码生成类型的其他用户查询产生更好的答案。

AI 入门

快速开启 - ApiHug如何在15分钟内,使用 ApiHug 启动一个API开发项目.icon-default.png?t=O83Ahttps://apihug.com/zhCN-docs/start

ApiHug - API design Copilot - IntelliJ IDEs Plugin | Marketplaceicon-default.png?t=O83Ahttps://plugins.jetbrains.com/plugin/23534-apihug--api-design-copilot

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2272500.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

国产编辑器EverEdit - 两种删除空白行的方法

1 使用技巧:删除空白行 1.1 应用场景 用户在编辑文档时,可能会遇到很多空白行需要删除的情况,比如从网页上拷贝文字,可能就会存在大量的空白行要删除。 1.2 使用方法 1.2.1 方法1: 使用编辑主菜单 选择主菜单编辑 …

出租号平台网站系统源码/单合租用模式 提供用户提现功能

这是一款租号平台源码,采用常见的租号模式对接的易支付。目前网络上还很少见到此类类型的源码。 程序采用thinkphp6.0开发,前端采用layui 程序开发:PHPMySQL 程序演示:zh1.yetukeji.top, 账户 13112215717 ,密码qq2…

C++:位与运算符

& 一,位与运算符的运算规则 有0则0。 二,判断奇偶性 %:优先级高,效率低 &:优先级低,效率高 数与1的位与运算结果为1则为奇数,结果为0则为偶数 三,获取一个数二进制的后…

第 31 章 - 源码篇 - Elasticsearch 写入流程深入分析

写入源码分析 接收与处理 请求首先会被 Netty4HttpServerTransport 接收,接着交由 RestController 进行路由分发。 private void tryAllHandlers(final RestRequest request, final RestChannel channel, final ThreadContext threadContext) throws Exception {…

C语言----指针

目录 1.概念 2.格式 3.指针操作符 4.初始化 1. 将普通变量的地址赋值给指针变量 a. 将数组的首地址赋值给指针变量 b. 将指针变量里面保存的地址赋值给另一个指针变量 5.指针运算 5.1算术运算 5.2 关系运算 指针的大小 总结: 段错误 指针修饰 1. con…

Java高频面试之SE-09

hello啊,各位观众姥爷们!!!本牛马baby今天又来了!哈哈哈哈哈嗝🐶 final关键字有什么作用? 在 Java 中,final 关键字有多个用途,它可以用于类、方法和变量。根据使用的上…

ChatGPT 主流模型GPT-4/GPT-4o mini的参数规模是多大?

微软论文又把 OpenAI 的机密泄露了??在论文中明晃晃写着: o1-preview 约 300B;o1-mini 约 100BGPT-4o 约 200B;GPT-4o-mini 约 8BClaude 3.5 Sonnet 2024-10-22 版本约 175B微软自己的 Phi-3-7B,这个不用约…

某纪检工作委员会视频监控网络综合运维项目

随着某纪检工作委员会信息化建设的不断深入,网络基础设施的数量持续增加,对网络设备的运维管理提出了更为复杂和艰巨的要求。为了确保这些关键信息基础设施能够安全稳定地运行,该纪检工作委员会决定引入智能化运维管理系统,以科技…

显示器太薄怎么用屏幕挂灯?使用前先了解屏幕挂灯的最佳角度

人们对用眼健康的重视以及数字化办公和娱乐的普及,屏幕挂灯作为一种能够有效减少屏幕反光、保护眼睛的照明设备,受到了越来越多消费者的青睐。随着科技的进步,显示器设计日益轻薄,为我们的桌面节省了空间并带来了美观的视觉效果。…

HTTP/HTTPS ②-Cookie || Session || HTTP报头

这里是Themberfue 上篇文章介绍了HTTP报头的首行信息 本篇我们将更进一步讲解HTTP报头键值对的含义~~~ ❤️❤️❤️❤️ 报头Header ✨再上一篇的学习中,我们了解了HTTP的报头主要是通过键值对的结构存储和表达信息的;我们已经了解了首行的HTTP方法和UR…

excel快速计算周数的方法

业务中经常要通过周汇总计算&#xff0c;为方便后续汇总在源数据引入“周”列 公式&#xff1a; "W"&IF((ROW()1)/7<1,1,ROUNDUP((ROW()1)/7,0))函数释义&#xff1a; ①一周有7天&#xff0c;如果1月1号刚好是从周一开始&#xff0c;那么计算周数可以简单得…

redis各种数据类型介绍

Redis 是一种高性能的键值存储数据库&#xff0c;它支持多种数据类型&#xff0c;使得开发者可以灵活地存储和操作数据。以下是 Redis 支持的主要数据类型及其介绍&#xff1a; 1. 字符串&#xff08;String&#xff09; 字符串是 Redis 中最基本的数据类型&#xff0c;它可以存…

Python 模块,包(详解)

一. 引用变量 引用变量&#xff1a;值的传递通常可以分为两种方式&#xff0c;一种是值的传递&#xff0c;一种是引用地址传递&#xff0c;在Python中一般都是用引用地址传递 变量名和对象&#xff1a;变量名&#xff08;如 a&#xff09;和它指向的对象&#xff08;如整数 5&a…

RabbitMQ发布确认高级篇(RabbitMQ Release Confirmation Advanced Edition)

系统学习消息队列——RabbitMQ的发布确认高级篇 简介 ‌RabbitMQ是一个开源的消息代理软件&#xff0c;实现了‌高级消息队列协议&#xff08;AMQP&#xff09;‌&#xff0c;主要用于在分布式系统中进行消息传递。RabbitMQ由‌‌Erlang语言编写&#xff0c;具有高性能、健壮…

封装/前线修饰符/Idea项目结构/package/impore

目录 1. 封装的情景引入 2. 封装的体现 3. 权限修饰符 4. Idea 项目结构 5. package 关键字 6. import 关键字 7. 练习 程序设计&#xff1a;高内聚&#xff0c;低耦合&#xff1b; 高内聚&#xff1a;将类的内部操作“隐藏”起来&#xff0c;不需要外界干涉&#xff1b…

【代码随想录】刷题记录(89)-分发糖果

题目描述&#xff1a; n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。 你需要按照以下要求&#xff0c;给这些孩子分发糖果&#xff1a; 每个孩子至少分配到 1 个糖果。相邻两个孩子评分更高的孩子会获得更多的糖果。 请你给每个孩子分发糖果&#xff0…

Ae:合成设置 - 3D 渲染器

Ae菜单&#xff1a;合成/合成设置 Composition/Composition Settings 快捷键&#xff1a;Ctrl K After Effects “合成设置”对话框中的3D 渲染器 3D Renderer选项卡用于选择和配置合成的 3D 渲染器类型&#xff0c;所选渲染器决定了合成中的 3D 图层可以使用的功能&#xff0…

掌握RabbitMQ:全面知识点汇总与实践指南

前言 RabbitMQ 是基于 AMQP 高级消息队列协议的消息队列技术。 特点&#xff1a;它通过发布/订阅模型&#xff0c;实现了服务间的高度解耦。因为消费者不需要确保提供者的存在。 作用&#xff1a;服务间异步通信&#xff1b;顺序消费&#xff1b;定时任务&#xff1b;请求削…

react构建项目报错 `npm install --no-audit --save @testing-l

这应该是我们想构建 react18 的项目&#xff0c;但是 通过 npx create-react-app my-app进行构建时&#xff0c;给我们安装的依赖是 react 19 下面提供一下我的解决方法&#xff1a; 第一步&#xff1a;在 package.json 中把依赖 react19 改为 react 18 第二步&#xff1a;添…

App窗口创建流程(Android12 )

有关的窗口对象 PhoneWindowActivityThread#performLaunchActivity {Activity.attach}Surface new ViewRootImpl 创建null对象mSurface.transferFrom(getOrCreateBLASTSurface())//填充内容创建native层的SurfaceLayerSurfaceFlinger::createLayerRenderSurfaceSurfaceFlinger…