你使用Windows 3.1吗?你的朋友会给你发ChatGPT写的笑话和俳句吗,让你 感觉被冷落了?你希望你触手可及的所有人类知识的总和吗?或者祝你 在您值得信赖的 386 上拥有自己的 AI 聊天机器人?
不要再希望了!介绍WinGPT,Windows 3.1的AI助手。
WinGPT 可帮助您:[1]
- 做研究:WinGPT 有助于回答您对从当前事件到 厨房食谱。告别尘土飞扬的百科全书和恩卡塔!
- 保持娱乐:WinGPT 提供有用的生活建议,并告诉您笑话 心满意足。在桌面上拥抱多媒体娱乐世界, 只要它是基于文本的!
- 掌握您的生产力:WinGPT 是您的数字伙伴,可帮助您起草文档和 最自信的电子表格。
这是怎么做到的?
WinGPT是用C语言编写的,使用标准的Windows API。我使用 Open Watcom v2 作为 编译器,这非常方便,因为它甚至支持从 Windows 16 交叉编译到 11 位 Windows。
WinGPT 使用 TLS 1.3 以本机方式连接到 OpenAI API 服务器,因此它不需要 终止 TLS 的现代机器。看看我是如何做到这一点的以及一些挑战, 看看 16 位 Windows 上的现代 TLS。(正如您将在该页面上看到的, 这不是一个安全的实现)。
构建用户界面
以前习惯于使用Delphi构建Windows应用程序,如Windle, 我很惊讶 Windows 3.1 的 UI 构建功能是多么原始,如果您只使用 内置的 Windows API。
我直接用 C 语言构建了大部分 UI,这意味着每个 UI 组件都必须在代码中手动构造。 手动调整大小逻辑可确保在调整窗口大小时每个组件保持其适当的大小。
特别是,令我惊讶的是,任何程序都可以使用这组标准控件 Windows 3.1非常有限。您有一些所需的控件 – 按钮、复选框、单选按钮 按钮、编辑框 – 但您可能需要的任何其他控件,包括在整个操作中使用的控件 系统本身不可用。
当我试图弄清楚如何向 WinGPT 添加状态栏时,我遇到了这个问题。状态栏 出现在 Windows 3.1 中,包括在文件管理器和控制面板中。不幸的是,Microsoft 直到 Windows 95 才将它们广泛提供给其他应用程序开发人员,以及 一堆其他有用的控件,如进度条、工具栏和树视图。[2]
顺便说一句,我问 ChatGPT 我如何在我的程序中使用状态栏。它回复了一个头文件 仅适用于更高版本的 Windows,当我要求它澄清时,它想出了这个名字 一个非常诱人(但我很确定非常不存在)的 UI 库。幸运的是,菲利普· 有一个 1997 年的状态栏实现,在我能够使用的公共领域非常友好!我修改了该代码以更紧密地 表示 Microsoft 程序像素像素中的状态栏。
Another fun part of building WinGPT was designing the icon in Borland’s Image Editor, which is really just a clone of Microsoft Paint that happens to make ICO files instead. Program icons in Windows 3.1 are 32×32, and show up in the Program Manager as well as in the task switcher. I also designed a 16×16 version that shows up on later versions of Windows.
Limitations
Windows 3.1 机器上的内存非常有限,所以我试图减少 WinGPT 所需的内存量,尤其是在发送和接收查询和响应时 OpenAI API。现代API的JSON响应并没有特别针对大小进行优化,而OpenAI的 API 也不例外。我已经要求模型简短,以保持尽可能小的响应。 我还选择不在 API 调用中发送以前轮次的文本,即使这意味着 机器人将无法使用以前的对话上下文。
试试温格特
WinGPT 在 GNU 通用公共许可证 (GPL) v2 下获得许可。
WinGPT 适用于任何 16 位或 32 位版本的 Windows 后 Windows 3.1。它需要一个 Winsock 的实现(在 Windows 32.3 for Workgroups 和 Windows 11.3 上使用 Microsoft TCP/IP-11 2000.64b 进行测试) 库存视窗 <>)。它不适用于 <> 位版本的 Windows(但确实适用于 葡萄酒——试一试!
您还需要一个OpenAI API密钥才能与OpenAI通信。打开 WinGPT 后,转到“文件”|”选项。。。自 输入您的密钥。
- 下载:适用于 16 位和 32 位 Windows 的二进制文件
- 来源:与修改后的 WolfSSL 源代码捆绑在一起(在 watcom16/wingpt 中)