ChatGPT让现在的软件都土掉渣了
我们家有两个娃,每次我们想要出去时订个酒店时都好麻烦。我在某程上找,我先看有没有家庭房,但家庭房很少,而且有些家庭房实际上只能睡得下两大一小。普通房间能不能睡得下四个人,那可是得查看很多信息,如床的尺寸、是否可以加床,是否可以睡沙发等等。每次订个酒店都要好久。我想很多有俩娃的家庭也有类似的烦恼吧。
这样的事情如果交给ChatGPT去做会怎么样呢,结果令人震惊,ChatGPT把方方面面都想到了,比我想得还要周全。

今天ChatGPT已经有插件通过Expedia订酒店,它可以帮我查看、分析酒店和房间的所有信息,帮我找到最合适的选择。
我无比期待在国内也能有类似的服务,要么是某程自己做一个这样的功能,要么某巨头搞一个同样智能的入口,然后用插件连接某程。
这是软件交互的革命,有了这样的交互,现在的软件这种让你不停的点点点、看看看、退退退的交互都土掉渣了。
Bill Gates在2023年3月21日发表的博文The Age of AI has begun中说ChatGPT是他有生之年见过两次革命性的Demo之一,是自图形用户界面以来最重要的技术进步。他认为控制计算机的主要方式将不再是指向和点击或点击菜单和对话框而是通过简单的母语写一个请求。我觉得Gates很好得概括了ChatGPT在交互方面的革命性和方向,如果交互的主要方式不再是点击而是对话,可以想象几乎今天所有的软件都需要重做。
温故知新,我们可以从命令行到GUI的发展来体会交互技术带来的变革有多大。以CRM为例,今天的CRM主要是通过大量的表单进行交互,如果CRM用命令行的方式实现,就需要通过如下图所示的众多命令来实现(来自开源的命令行CRM项目crm-cli)。

以上命令中还需要使用很多如下图所示的数据结构。

显然,命令行式交互有很明显的缺点:
学习成本高,易用性低:需要事先学习大量的命令和参数
效率低:文字输入比点击慢至少一个数量级,也没法利用上下文(GUI中的点击是可以带上下文的,也就是请求参数)
但命令行式交互也有一个很明显的优点,即方便通过“管道”或者“脚本”进行功能组合。此外对于复杂系统的专业人员来说效率可能更高,因为可以直接输入操作指令而不需要层层点击,只需要记忆指令而不需要记忆到达指令的路径。因为以上原因,虽然绝大多数用户都喜欢GUI,但程序员、运维等专业群体仍在较多使用命令行。
同样的道理,ChatGPT也会导致软件交互方式的变革。还是以CRM软件为例,基于ChatGPT的CRM软件具有传统CRM软件的基本功能,如联系人管理、销售跟踪、任务管理、报告等。然而,通过结合ChatGPT的强大自然语言处理能力,我们可以创造出一个更智能、互动性更强、用户体验更好的CRM系统。
基于大语言模型的对话式交互的优势非常多,以下是我的一些思考,说明了自然语言交互、利用上下文、多重上下文、智能求解、对话即编程等方面的优势,而我相信这仅仅是对话式交互优势的一小部分。
自然语言交互
基于ChatGPT的交互的第一个优势是可以使用非常自然的语言。
如销售代表可以用对话的方式完成以下工作:
客户信息查询:销售代表可以输入“显示客户A的详细信息和购买历史”。
日程安排与提醒:销售代表可以输入“明天下午3点安排与客户B的电话会议,并设置提醒”。
销售数据查询:销售代表可以输入“查询我本月的销售额和达成目标的百分比”。
创建和更新销售机会:销售代表可以输入“为客户C创建一条新的销售机会,可能对产品Y感兴趣”。
任务管理:销售代表可以输入“创建任务:下周二跟进客户F的订单状态,并在完成后通知我”。
销售主管则可以用对话完成以下工作:
团队绩效监控:销售主管可以输入“显示本月团队销售业绩”以获取团队成员的业绩数据和进度。
销售报告与分析:销售主管可以输入“生成本季度销售报告并分析表现突出的产品”。
任务分配与跟踪:销售主管可以输入“为李四分配任务:下周跟进客户A的需求,提醒我在下周五检查进度”。
协同工作与沟通:销售主管可以输入“将本月销售目标分享给全体团队成员,并收集他们的意见和建议”。
客户关系管理:销售主管可以输入“显示团队上周与客户B的所有互动记录”。
公司CEO则可以用对话完成以下相关工作:
公司业绩概览:CEO可以输入“显示本季度公司整体销售业绩和利润”。
部门绩效比较:CEO可以输入“比较各部门本月的业绩和达成目标的百分比”。
员工绩效评估:CEO可以输入“显示10名表现最佳的员工及其贡献”。
合作伙伴关系管理:CEO可以输入“查询与合作伙伴X的合同细节和合作成果”。
竞争对手分析:CEO可以输入“比较我们的产品与竞争对手Y的产品优劣”。
利用上下文
基于ChatGPT的交互的第二个优势是可以利用上下文提高输入效率。如以下模拟了销售主管李总的一轮对话:
李总:看下近一周有更新的商机。
ChatGPT:近一周更新的商机如下:
(图示有更新的商机列表)李总:只看产品A的
ChatGPT:其中近一周有更新的有数的商机具体情况如下:
(图示近一周有更新的有数的商机列表)ChatGPT会理解“只看产品A的”是在“近一周有更新”的基础上,利用了上文信息。
如果用GUI交互,一般需要在商机列表上方的筛选框中进行选择,效率不见得比说“只看产品A的”高。如果用命令行交互,一般需要用类似“list-pipeline --update-time -1w --product-line 产品A”这样的命令,需要同时输入更新时间和产品线筛选条件,显然效率低很多。
ChatGPT并不是仅仅用自然语言一比一替换命令行。
多重上下文
基于ChatGPT的交互的第三个优势是可以利用更早一些的上下文,进一步提高效率。如以下模拟了李总的继续对话:
李总:看下客户C
ChatGPT:客户C的具体信息如下:
(图示客户C的具体信息)李总:再看下产品B的
ChatGPT:其中近一周有更新的产品B的商机具体情况如下:
(图示近一周有更新的产品B的商机列表)ChatGPT会理解“再看下产品B的”还是在“近一周有更新”的基础上,利用了上文信息,但这个上下文并不是最近的上下文。
这是对话式交互相比GUI的显著优势。在GUI交互中,李总在查看客户A的具体信息时,通常已经进入到客户A的详情页面,这时如果李总想看产品B最近一周更新的商机,要回到上一个界面,在筛选条件中选择产品B才能完成。
智能求解
基于ChatGPT的交互的第四个优势,也是语言大模型特别强大的地方是它可以理解用户的意图,构思解决问题的思路,调用多项外部能力并进行分析然后提供答案。比如我们继续李总的对话:
李总:客户A对什么具体产品感兴趣
ChatGPT:需求:客户A感兴趣的具体产品
思路:看是否有具体产品标签,没有
思路:看是否有试用申请,没有
思路:看销售代表和客户A的跟进动态信息,发现有记录客户A的CIO王总对BI和大屏感兴趣
结论:客户A对BI和大屏感兴趣具备通用智能能力的ChatGPT完全有能力做出这样的思考,并对信息进行总结来回答问题。参考ChatGPT发布插件机制后网上曝光的一些case,ChatGPT可以很聪明地利用外部能力来解决复杂问题。
对话即编程
基于ChatGPT的交互的第五个优势,也是语言大模型可能最强大的地方是提供了一个非常自然的编程能力,让普通用户也可以把常用的动作串成一段“脚本”方便后续使用。如用户可以告诉ChatGPT“近一周客户意向”命令要做以下动作:
查看最近一周更新的商机。
查看每条商机的客户意向。
对以上客户意向进行汇总。后续李总说“近一周客户意向”时,ChatGPT就会按以上次序去执行各项操作并得出汇总结果。
这方面的思考具体可以参加我的公众号文章GPT-4革命:对话即编程,人人都是程序员?
我认为可以将命令行、GUI和对话三种交互方式的优缺点总结如下。对话式交互最突出的优势是智能性、可组合和个性化的能力、操作复杂应用时的效率。和GUI相比,对话式交互的主要缺点是学习成本稍高,易用性稍差,简单应用的效率低一些。总的来说,我认为软件越复杂,对话式交互的优势越明显。
| 交互方式 | 命令行 | GUI | 对话 |
|---|---|---|---|
| 学习成本 | ★★★★★ | ★ | ★★ |
| 易用性 | ★ | ★★★★★ | ★★★★ |
| 交互效率(简单应用) | ★ | ★★★★★ | ★★★ |
| 交互效率(复杂应用) | ★★★★ | ★★★★ | ★★★★★ |
| 可组合&个性化 | ★★★★★ | ★ | ★★★★ |
| 智能性 | ★ | ★ | ★★★★★ |
对话式交互太具有革命性,体感非常强,价值非常显著,已经部署的企业会很希望对现有的软件进行升级,引入对话式交互功能,但这个过程往往会导致已有软件的大规模重新开发。
首先,引入对话式交互基本需要把前端重新开发一遍,因为现有的前端界面通常不能很好地嵌入到对话流中。
理论上讲,如果企业已经部署的软件进行了很好的中台化设计,把核心业务能力都沉淀在中台之中,并提供了很好的API,那么后端是可以不重新开发的。但实际上有大量的企业软件并没有这样的设计,前后端耦合、API缺失的现象大量存在,所以很多时候后端也可能需要重新开发。
因此,在新的交互范式出现时,现有的软件很可能都需要重新开发一遍。
上文主要讲了差旅和CRM的案例,再稍微展开说一下电商,目前在电商App上购物的效率其实是很低的,经常要看很多很多信息,进行对比,花很多时间才能选好买哪个。这个交互如果基于ChatGPT来设计,可能只需要勾选几个候选产品,然后让ChatGPT自动地去做分析给出对比报告,这就轻松多了。用户越是在使用产品时需要思考,ChatGPT的帮助就越大。
这将带来一次巨大的创新机会,但对现有业务来讲又是一次巨大的挑战。历史以来,从命令行到GUI,从Web到移动App,都是交互形态的改变,都会出现一大波新的机会,但同时也会有一大批旧时代的霸主被淘汰。这对任何的在位者来说都是巨大的挑战,如果行动迟缓,等到竞争对手探索出了新的产品交互形态,已有的产品都会被视作“上一个年代的老东西”而被用户抛弃。
相关文章:
ChatGPT让现在的软件都土掉渣了
我们家有两个娃,每次我们想要出去时订个酒店时都好麻烦。我在某程上找,我先看有没有家庭房,但家庭房很少,而且有些家庭房实际上只能睡得下两大一小。普通房间能不能睡得下四个人,那可是得查看很多信息,如床…...
IU5708D低静态电流同步升压DC-DC 控制器
IU5708D是高性能宽输入范围 (4.5V~40V) 同步升压控制器,支持高达52V的输出电压。输出电压采用恒定频率电流模式脉宽调制(PWM) 控制来实现调节。 芯片通过外部定时电阻器或通过与外部时钟信号同步来设置开关频率。在电阻编程模式下,开关频率可从50KHz编程…...
ubuntu查看软件安装路径
ubuntu怎么查看软件安装位置在哪 - 服务器 - 亿速云 1、执行程序查看 在终端使用type执行软件程序查看。 type google-chrome 2、通过进程查看对应的软件程序 在终端使用以下命令查看所有进程名。 ps -e 再使用以下过滤命令查看对应的进程信息即可。 ps aux|grep 软件名 …...
动态规划总结
1,01背包dp(每件物品最多选一次): 因为背包为0 的时候,什么都装不了,所以为零 ,就是他们的最优解。 最后一个单元格为最后的答案。 01背包模板 public class Knapsack {public static int kn…...
分享:数据库存储与索引技术(一)存储模型与索引结构演变
欢迎访问 OceanBase 官网获取更多信息:https://www.oceanbase.com/ 本文来自OceanBase社区分享,仅限交流探讨。原作者马伟,长期从事互联网广告检索系统的研发,对数据库,编译器等领域也有浓厚兴趣。 文章目录综述传统单…...
ZeusAutoCode代码生成工具(开源)
ZeusAutoCode代码生成工具 一、简介 Zeus代码生成器是一款自动代码生成工具,旨在快速生成基础的CRUD代码,在此基础上也提供了一些高级功能,做到灵活配置,生成可扩展性强的代码。 后端是基于springboot、freemarker、mybatisplu…...
算法题记录
力扣的算法题:1154 给你一个字符串 date ,按 YYYY-MM-DD 格式表示一个 现行公元纪年法 日期。返回该日期是当年的第几天。 示例 1: 输入:date “2019-01-09” 输出:9 解释:给定日期是2019年的第九天。 示例…...
章节2 行走数据江湖,只需一行代码
目录6. 函数填充,计算列6.1 excel操作6.2 pandas操作16.3 pandas操作28. 数据筛选、过滤,[绘图前的必备功课]8.1 excel操作8.2 Python操作http://sa.mentorx.net 蔓藤教育6. 函数填充,计算列 书的编号、书的名字、标价、折扣、最终价钱 最终…...
springboot集成xx-job;
概念理解: xx-job是一个分布式任务调度平台。比如你有AB两个项目。 AB的定时任务就要在xx-job上个注册。同时AB要配置对应的依赖。 所以集成xx-job要分2步骤:第一步:先搭建xx-job服务 第二步,在A项目中导包并引用。 第一步&am…...
35岁,失业6个月终于接到降薪offer:有面就面,薪酬不限,随机应变说瞎话,对奇葩面试官保持礼貌克制,为拿offer什么都能忍...
被裁后为了生存,人需要做出什么改变?一位35岁网友在失业6个月后终于拿到offer,虽然降薪到四年前的水平,但能继续养家糊口,楼主已经很满意了,并分享了自己的个人经验:1.挖掘历史项目经验…...
如何有效管理项目进度 都有哪些解决方法
项目进度管理是确保项目按时完成的关键因素之一。如果一个项目不能按时完成,那么它可能会导致成本超支、客户不满意和失去信誉等问题。因此,有效的项目进度管理至关重要。在本文中,我们将探讨如何有效管理项目进度以及可以采取哪些解决方法。…...
互联网随想(三) 光纤与电路交换
光纤的 “纤”,读 xian(先),第一声,而不是 qian(千)。 光纤之于通信,就像半导体之于计算机。光纤突破了通信的电子瓶颈,就像半导体集成电路突破了计算机的电子管瓶颈一样。 但本文不是赞美光纤的,本文为反…...
electron之旅(二)react使用
首先使用react模板 我们这里使用的是vite和yarn yarn create vite #创建vite的react-js模板初始化依赖 yarn添加依赖 state(状态管理) yarn add redux react-reduxroutes(react路由) yarn add react-router-domelectron依赖 yarn add electron vite-plugin-electron cross-env…...
ChatGPT基础知识系列之Prompt
ChatGPT基础知识系列之Prompt 在 ChatGPT 中,用户可以输入任何问题或者话题,如天气、体育、新闻等等。系统将这个输入作为一个“提示”(prompt)输入到 GPT 模型中进行处理。GPT 模型会基于其学习到的语言规律和上下文知识,生成一个自然语言回答,并返回给用户。 例如,当…...
SpringBoot3 - Spring Security 6.0 Migration
Spring Security 6.0 Migration https://docs.spring.io/spring-security/reference/5.8/migration/servlet/config.html 最近在做SpringBoot2.x到3.0的升级。其中最主要的一部分是javax -> jakartapackageName的变更,另外一部分是对一些废弃/删除的类进行替换。…...
【新2023Q2模拟题JAVA】华为OD机试 - 最少停车数
最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为od机试,独家整理 已参加机试人员的实战技巧本篇题解:最少停车数 题目 特定大小的…...
《代码实例前端Vue》Security查询用户列表,用户新增
login.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>系统登录-超市订单管理系统</title><link rel"stylesheet" href"../css/style.css"><script type&qu…...
CANopenNode学习笔记(一)--- README翻译
CANopenNode学习笔记 文章目录CANopenNode学习笔记特性CANopen其他CANopenNode 流程图文件结构对象字典编辑器CANopenNode 是免费开源的CANopen协议栈。 CANopen是建立在CAN基础上的用于嵌入式控制系统的国际标准化(EN 50325-4) (CiA301)高层协议。有关CANopen的更多信息&#…...
关于Android 11、12和13服务保活问题
物联网环境,为了解决不同厂商、不同设备、不同网络情况下使用顺畅,同时也考虑到节约成本,缩小应用体积的好处,我们需要一个服务应用一直存在系统中,保活它以提供服务给其他客户端调用。 开机自启动,通过广播…...
Java 泛型 使用案例
参考资料 Java 基础 - 泛型机制详解路人甲-Java泛型专题 目录一. 通用Mapper1.1 实体类1.2 Mapper基类1.3 自定义接口1.4 抽象基类Service1.5 调用二. session和bean的获取一. 通用Mapper 1.1 实体类 ⏹ Accessors(chain true): 允许链式调用 import lombok.Data; import …...
KubeSphere 容器平台高可用:环境搭建与可视化操作指南
Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...
XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...
突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...
IGP(Interior Gateway Protocol,内部网关协议)
IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...
【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...
数据库分批入库
今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...
七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...
Git常用命令完全指南:从入门到精通
Git常用命令完全指南:从入门到精通 一、基础配置命令 1. 用户信息配置 # 设置全局用户名 git config --global user.name "你的名字"# 设置全局邮箱 git config --global user.email "你的邮箱example.com"# 查看所有配置 git config --list…...
【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)
前言: 双亲委派机制对于面试这块来说非常重要,在实际开发中也是经常遇见需要打破双亲委派的需求,今天我们一起来探索一下什么是双亲委派机制,在此之前我们先介绍一下类的加载器。 目录 编辑 前言: 类加载器 1. …...
