当前位置:AIGC资讯 > AIGC > 正文

AIGC时代桌面软件开发技术展望

AIGC技术催生新一代桌面软件

        现代大模型技术本质上是一种“NLP”技术,基于这个观点,文本描述驱动引擎就是AI技术落地无法规避的一道墙,每一个AI技术都必须实际的面对这个事实。就文本驱动技术而言,在一个token的两侧,分别插入一个或者一组“token”,是一件非常容易的事情,NLP如何处理这种“token”的插入机制是一个关键话题,有一种公认的说法是:大模型技术本质上就是基于一个token预测下一个token或者下一组“token”。

        与“token”几乎无障碍的插入行为形成鲜明对比是:以原生代码为基础的桌面软件开发之中,在一个“子窗口”周围的某个位置之上插入一个或者一组窗口对象,其复杂度、技术障碍要远远大于在一个“token”的两侧分别插入一组“token”,由于原生代码需要编译、链接,与此同时,特定窗口对象的具体实现一般要依赖于某种编程语言,进而在一子窗口的周围插入一组子窗口的复杂度明显的增加。

        一种全新的“Text to Native UI”技术,为我们基于“文本描述”的方式动态生成如下复杂桌面窗口对象奠定了决定性的基础:

你没有看错,如上一组“综合、复杂”的窗口对象,均形成于一种“Web DOM”描述驱动规则,也就是Web页面。这个技术模式允许我们将

在一个“子窗口”周围插入一组全新的“子窗口”这一“原生代码行为”转化为一种“文本描述”策略。

如果我们这里描述的策略是真实的,那么大量的原生UI界面,即可转化为一种接近“自然语言”的描述行为,桌面应用软件开发领域会因此自然而然的成为AIGC技术的主场。

       到目前为止还没有任何一款现代的IDE可以直接完成这里展示出的窗口对象结构,开发者自己几乎不可能直接用“原生代码”创建。从现实的技术框架现状看,面对如下窗口对象:

开发者基本上无能为力。毋庸置疑,只要Windows操作系统存在,桌面软件技术就会进一步发展。桌面软件技术的现状是:由于过度依赖于原生代码技术的发展,这一点严重制约了开发者生产力的彻底释放。桌面软件发展的几十年历史说明了一个现实的问题:

软件原创团队的技术能力直接限定了软件的可拓展性以及与其关联的软件内容生态的构建。

因此运用AIGC技术破解这个局限,使得AI技术生成

原生代码技术无法在设计阶段实现的应用结构

成为一件非常值得期待、常态化的内容生成模式。

        现代大模型技术为我们在“云端”打开了无限数量的“token”,所以在相对于“云端”的“PC操作系统的侧端”,我们应该打出一张与其对等匹配的“牌”,以很好的适应AIGC技术在PC操作系统这一环节迅速落地,那么这一张牌是什么呢?

互联网浏览器启示录

        从原生代码的视角看,Web浏览器本质上是一种特殊的桌面软件,与其他桌面软件不同的是,浏览器可以支持无限数量的Web页面,开发人员只需要遵循“Web DOM”的规范即可基于文本描述策略形成无限数量的Web页面,这一点是Web浏览器之外的桌面软件完全不具备的优势。

        现代大模型技术最醒目的一个特征就是“无条件”的支持各种Web浏览器,我们可以轻而易举的运用各种大模型技术处理、组合Web页面之中的各种DIV元素,然而现在我们还无法在一款桌面软件之中基于某种描述规则组织各种窗口对象,即使强大的Web浏览器也无法做到这一点,因此,如果我们可以很好的解决如下问题:

“各种类型桌面窗口对象运用Web DOM完成自由组合”

那么AIGC技术必将在桌面应用领域展现其强大的威力。

AIGC Browser的使命

        AIGC Browser是一个“桌面应用超级助手”,在Win32桌面应用世界之中建立了一个独一无二的颠覆性匹配规则:为64位桌面应用软件动态匹配一个

拥有超级Web DOM结构的Chromium-Based现代Web浏览器子系统。

使得普通桌面应用得以在运行时可以浏览任意数量“面向应用的Web页面”,进而获得几乎无限的应用资源驾驭能力:

超级“Web DOM结构”之中除标准Web DOM元素之外,还包含:普通Win32窗口对象、.NET Control、WinForm、ActiveX Control以及MFC CView/CWnd等Win32 UI元素。

        一张白纸,没有负担,好写最新最美的文字,好画最新最美的画图。AIGC Browser所建立的规则将绝大多数桌面应用重新视为“一张白纸”,Win32桌面应用世界将因此发生颠覆性的震荡,其带来的最显著变化是让我们可以平等对待:

“普通桌面应用”与“互联网浏览器”

可以直接为普通桌面应用写任意数量的超级Web页面,一个全新的帷幕徐徐拉开,“普通桌面应用”将成为比主流Web浏览器更强大、更广泛的桌面互联网入口。

        针对如下类型的64位桌面应用:

基于Windows SDK; 基于C++/ATL/MFC; 基于.NET Core/.NET Framework;

通过为其可执行文件“abc.exe”提供初始化页面:

abc.app.html

AIGC Browser实现了如上描述的匹配规则,这一点直接意味着,开发者的桌面应用事实上完全可以借助于与其匹配的“Web浏览器子系统”直接与现在的各种大模型技术对接。最初阶段开发者可以提供一个“空白页面”作为初始化页面,AIGC Browser以此为基础创建与应用类型匹配的默认初始化页面,为后续的工作奠定基础。

        AIGC Browser引进了一对“核心概念”,有核窗口与窗口核:

如果子窗口的运行时屏幕位置唯一依赖于其父窗口,那么子窗口称为其父窗口的“窗口核”,父窗口称为“有核窗口”。

.NET开发之中那些“Dock属性值为DockFill或者DockNone”、MFC CView类对象,是“窗口核”的典型例子,基于此,绝大多数WinForm对象以及几乎所有MFC CFrameWnd的“派生类类对象”都是典型的“有核窗口”。

        AIGC Browser为我们首次揭示了一个极为重要的事实:

每一个“窗口核”的外围,环绕着一个基于Web DOM描述规则形成的“无限维窗口对象”世界,这意味着在运行时,允许“窗口核”基于Web技术驱动无限数量的桌面窗口对象……

这个事实实际上明确的告诉开发者:

基于Web DOM规则,在一子窗口的外围插入一组其他类型的“子窗口”是完全可行的。

这种“可行性”无异于说明:我们一定可以拥有如同“组合图片、文字描述”的可操作途径

组合出超级强大的窗口对象结构

进而确保了AIGC技术可以充分、全方位的在桌面应用软件之中落地。

       由于“窗口核”的外围,是一个无限维的窗口对象环绕世界,并且可以运用Web技术对其进行充分的控制,这个时候,“窗口核”则相当于处在我们熟悉的“WebView”的位置,而有核窗口则相当于一种广泛存在的“新型Web浏览器窗口”,我们看如下一个普通的WinForm窗体:

窗体中橘黄色的panel对象是一个“窗口核”(Dock属性决定其位置变化唯一依赖于其父窗体),启动AIGC Browser之后,会在panel的周围“看到”一个“无限维内容环绕层”,软件运行的不同阶段,其周围会基于Web DOM驱动规则,呈现出“无穷无尽的”UI变化:

AIGC Browser的工作模式:

        如果开发者没有桌面软件的源代码,那么桌面应用启动之后再启动AIGC Browser即可激活与其匹配的“浏览器子系统”,AIGC Browser会检查“桌面应用的清单(manifest)配置是否具备Windows10兼容性”,如果不具备则弹出如下信息框:

点击“确定”按钮完成对桌面应用清单(manifest)配置的调整工作(AIGC Browser会重新启动应用)。完成启动之后,可以关闭AIGC Browser。

       如果开发者有与“桌面应用可执行文件”相关的那一部分源代码,那么通过修改极为有限的源代码,通常情况下需要修改不超过3行代码,有可能会增加不超过两个源代码文件,重新编译之后,该应用会支持内置的AIGC Browser,可以直接拥有自己独立的“浏览器子系统”。

        AIGC Browser原则上可以不参与桌面应用开发中与“代码编写、编译、链接等与原生代码相关的工作”,即使你没有某个桌面应用的源代码,这个桌面应用也可充分利用AIGC Browser构建自己的“超级内容生态”。

.NET、MFC开发者的AIGC Browser

        AIGC Browser完美的支持.NET、MFC桌面应用,如果你已经新生成一MFC SDI工程“xxx”,直接编译运行应该看到如下窗口:

现在,你需要在包含“xxx.exe”的文件夹之中提供一个名为“xxx.app.html”的空白页面,然后启动AIGC Browser,接下来将是见证奇迹的时刻:看到如下呈现的运行时场景,你会不会感到很神奇、惊艳以至于完全出乎你的意料?

这里呈现的场景的确是一个令人震惊的画面,应该是你第一次看见“完整的现代浏览器标签系统”与其他桌面应用之中的窗口对象在局部形成动态耦合:主窗口的中心部分成了Web内容的入口点,运行AIGC Browser之前与运行该浏览器之后,应用程序主窗口、控制条(Control Bar)等都产生了“鲜明的变化”,由于你没有添加任何与AIGC Browser有关系的代码,你一定会感到惊奇:所有这一切都是从哪里来的?

        在xxx.exe主窗口之内显示的Web页面中,可以找到如下图显示的“二组超链接”:

如果你打开标记包含“CloudMDIForm”的一组超链接,xxx应用系统会在其进程之内创建一系列动态“WinForm”对象(将WinForm对象看作是一类普通的Web页面元素):

接下来,如果你打开标记包含“WebPage”的一组超链接,你会看到风格不同的“Web页面”:

现在我们简要的汇总一下我们究竟看到了什么:

桌面软件的主窗口内部激活一组全新的Web浏览器标签页; 桌面软件在应用进程之内创建了一组独立的现代浏览器窗口; 桌面软件动态创建了一组风格不同的WinForm对象; MFC窗口对象之中包含了.NET Control、WinForm……

不用说,这是一个全新的应用模式,AIGC Browser将“普通桌面应用”提升到与Chrome、Edge等Web浏览器完全相同的基准线上,这个策略导致:

普通桌面应用具备与Chrome完全一致的WebUI机制,例如,可以在其进程之内直接创建现代Web浏览器窗口; 普通桌面应用程序支持传统浏览器不支持的“超级Web页面”,可以在其应用进程之中基于Web技术驾驭那些成熟的Native UI资源; 普通应用程序拥有适配现代AI技术的“Text to NativeUI”文本描述引擎。

       AIGC Browser事实上揭示了“原生代码”与“Web代码”之间存在类似自然界之中“电场”与“磁场”之间的“共生关系”,在原生代码技术之外AIGC Browser为桌面应用系统“平行、独立”的提供了“Web开发”技术途径,这种“对偶”开发模式必然是桌面应用领域之中的一种“普遍现象”,这意味着“Web内容生态”是所有桌面软件拥有的“公共生态”,从这一视角看,Web浏览器应该是“最小”的桌面应用结构。

对桌面应用开发领域的展望

        如果开发者不肯放弃“依赖于自己拥有的技术”实现他所期待的软件愿景,那么AIGC技术就会被极大的限制在一个“狭窄”的空间之中。如果我们选择拥抱AIGC这一大趋势,那么应用软件之中那些由于原生代码形成的内容边界就会荡然无存。我们看一组图片:

实际上,每一款桌面软件之中的窗口看似没有缝隙,事实上“缝隙无处不在”,因此,

基于多模态输入的模式,例如基于语言,在软件运行阶段使得某一款软件的桌面窗口在某一个具体屏幕位置中插入你期待的一个UI结构是完全可行的。

多模态输入归根结底是在AI处理的内部将其转化为“文本描述”,这一点意味着只要大模型可以将文本转化为合适的“DOM结构”,那么桌面软件的多模态动态结构:

就会转化为相对不依赖于原生桌面应用源代码的一种技术模式

在下一版本的AIGC Browser之中,我们会将AIGC Browser的作用域拓展到更大的范围。

        现代大模型技术为我们在“云端”打开了无限数量的“token”,所以在相对于“云端”的“PC操作系统的侧端”,我们应该打出一张与其对等匹配的“牌”,以很好的适应AIGC技术在PC操作系统这一环节迅速落地,这一张牌就是:

在PC操作系统所代表的“侧端”,为原生桌面应用打开无限数量、类型的“原生桌面窗口”,使得桌面软件可以运用AI技术生成自己的“应用内容生态”

如果我们意识到每一个桌面应用事实上都拥有属于自己的无限维内容生态,那么,桌面应用的实际结构就可以

彻底摆脱其原创团队的局限,AIGC作为其进一步发展的可持续化机制,会使得桌面应用远远的超越Web浏览器成为一种全新的内容生态模式。

开发者应该明确一个基本事实:他所开发的具体应用,仅仅是开启了一个内容入口,至于后续展现的实际内容,应该是

基于具体的场合,以及在所处场合之中可以利用的资源状态进一步再生成的内容。

我们非常期待国内的同行可以基于我们提供的AIGC Browser技术体系打开桌面应用领域的AIGC入口,使得大模型技术扎扎实实的在“PC侧端”彻底落地。

更新时间 2024-06-11