整理 | 郑丽媛
出品 | CSDN(ID:CSDNnews)
ChatGPT 问世的这半年,我们目睹了许多由它掀起的变革和争议,见证了越来越多大模型的崛起,同时推测着未来的发展趋势……但万万没想到,这股名为 ChatGPT 的风,还能吹到 30 年前的操作系统中!
近来,一位开发者 @dialupdotnet 掏出了他 30 年前——即 1993 年入手的“古董电脑” Gateway 4DX2-66,并表示:“我不想让我 1993 年的 Gateway 4DX2-66 被排除在 AI 革命之外,所以我基于 OpenAI API,为 Windows 3.1 建立了一个 AI 助手,名为 WinGPT。”
也就是说,WinGPT 能让 30 年前推出的 Windows 3.1 也用上 ChatGPT!
“艰难”地构建 UI
作为一名如今生活在 2023 年的开发者,@dialupdotnet 早已习惯用 Delphi 来构建像 Windle 这样的 Windows 应用程序,因此猛然间只能用内置的 Windows API 时,他深感不便:“我很惊讶 Windows 3.1 的 UI 构建功能竟会如此原始。”
为此,@dialupdotnet 直接用 C 语言构建了大部分 UI,即每个 UI 组件都必须用代码手动构建,更要手动调整逻辑大小,以确保每个组件在窗口被调整时都能保持其适当的大小。
这还不是最难的。当 @dialupdotnet 试图弄清如何在 WinGPT 中添加状态栏时,他发现 Windows 3.1 上可供程序使用的标准控件集也非常之有限:“除了按钮、复选框、单选按钮、编辑框,另外一些你可能需要的其他控件,包括那些在操作系统本身中使用的控件,都是不可用的。”
例如,明明状态栏在 Windows 3.1 中随处出现,文件管理器和控制面板中都有,但微软并未将其作为可用控件提供给开发者。直到 Windows 95,微软才将这些控件与进度条、工具条和树形视图等其他一些有用控件,广泛地提供给应用开发人员。
对于这个问题,@dialupdotnet 问了 ChatGPT 如何在 Windows 3.1 程序中添加状态栏,但它的回答是一个只存在于 Windows 后期版本中的头文件。就算 @dialupdotnet 继续追问,ChatGPT 也只是“编造”出了一个不存在的 UI 库的名字。
好在最后状态栏的问题,@dialupdotnet 还是自己想办法解决了:Philip J. Erdelsky 有一个 1997 年的状态栏实现,并且代码是开源的,@dialupdotnet 对其进行了修改,使其看起来更贴近 Windows 3.1 应用中的状态栏。
在构建 WinGPT 的 UI 过程中,还有一个有趣的点:在 Borland 图像编辑器中设计图标,它实际上是微软 Paint 的一个克隆,只不过恰好可以制作 ICO 文件。通过 Borland 图像编辑器,@dialupdotnet 共设计了两种规格的图标:32x32 的,该规格图标才能在 Windows 3.1 的程序管理器和任务切换器中显示;16x16 的,用于在后来的 Windows 版本上显示。
WinGPT 有一定限制
一些准备就绪后,WinGPT 就创建完成了。不过毕竟 @dialupdotnet 的“古董电脑” Gateway 4DX2-66 购于 30 年前,尽管 WinGPT 能在 Windows 3.1 上运行,电脑内存也相当有限。
“我试图减少 WinGPT 所需的内存,特别是在发送和接收 OpenAI API 的查询和响应时。”但 @dialupdotnet 指出现代 API 的 JSON 响应在大小上并没有特别优化,OpenAI API 也不例外:“我已经要求模型尽量简短,以使响应尽可能的少,我还选择在 API 调用中不发送前一轮的文本。但这也就意味着,聊天机器人无法使用先前的对话背景。”
简单来说:由于内存支持有限,WinGPT 只能接收简短的回复,聊天内容也无法联系上下文。
尽管如此,对此感兴趣的网友也可以像 @dialupdotnet 一样,翻出家中蒙尘已久的 Windows 3.1 电脑,前往 https://www.dialup.net/ 网站下载 WinGPT,尝试一场跨越 30 年的 AI 对话。
需要注意的是,虽然 WinGPT 可以在 Windows 3.1 之后的任何 16 位或 32 位版本的 Windows 上运行,但它需要通过 Winsock 实现,也不支持 64 位版本的 Windows。此外,用户还需要输入自己的 OpenAI API 密钥才能运行 WinGPT。
参考链接:
https://www.dialup.net/wingpt/
https://www.theregister.com/2023/06/27/retro_chatgpt_for_windows/
相关文章
猜你喜欢