ChatGPT复古玩法:39年前老电脑+DOS系统也能玩转

  选自 arstechnica

  作者:BENJ EDWARDS

  机器之心编译

  机器之心编辑部

  当 ChatGPT 遇到 MS-DOS 系统,你可以会有一种穿越的感觉。

  近日,新加坡的复古计算机爱好者 Yeo Kheng Meng 发布了一个 MS-DOS 的 ChatGPT 客户端,可以在 4.77MHz IBM PC 上运行,为 ChatGPT 提供了一种独特的交流方式。

  对于 ChatGPT 客户端来说,MS-DOS 是一个非常有挑战性的平台,因为它缺乏本地联网能力。此外,Yeo 的目标是一台处理能力非常有限的电脑:1984 年的 IBM 5155。它的内部包含一个 Intel 8088 4.77 MHz 的 CPU、640KB 传统内存、CGA ISA 显卡和 MS-DOS 6.22 系统。

  IBM 5155 是一款便携式电脑,它采用了类似于行李箱的外壳设计,有一个可折叠的手柄,可以方便地携带。

  为了创建客户端,Yeo 使用了 Open Watcom C/C++,这是一个在 Windows 11 上运行的现代编译器,可以针对 16 位 DOS 平台。为了测试,他使用了运行 DOS 6.22 的 VirtualBox 虚拟机来简化开发过程,然后他将编译后的二进制文件传输到目标 IBM DOS PC 上进行测试。

  为了处理 IBM PC 上的网络问题, Yeo 做了多方面的努力。首先,他利用了 1983 年发明的「Packet Driver API」标准。他将 Michael B. Brutman 的开源 MTCP 库集成到应用程序中,与 Packet Driver 进行通信,为客户端提供网络功能。

  对于 ChatGPT API,Yeo 使用了 OpenAI 的 Chat Completion API,用 C 语言手动构建了 POST 请求(并解析了 JSON 格式的响应)。

  然而,Yeo 遇到了一个巨大的障碍:ChatGPT 的 API 需要加密的 HTTPS 连接。由于 MS-DOS 没有原生的 HTTPS 库,Yeo 创建了一个 HTTP-to-HTTPS 代理,可以在现代计算机上运行,并翻译 MS-DOS 客户端和 ChatGPT 的安全 API 之间的请求和响应,在通信过程中充当一个透明的中间人。

  Yeo 说,由于 DOS 应用的单线程性质,向控制台读写输入是另一个挑战。他设计了一种在不暂停程序的情况下检查和接收按键的方法,使用 MTCP 页面和在线样本作为参考。

  最后,客户端的效果比 Yeo 预期的要好。他在一篇更详细的博客中描述了他的开发过程。

  博客地址:

  https://yeokhengmeng.com/2023/03/building-a-dos-chatgpt-client-in-2023/

  相关代码参加 GitHub 项目:

  项目地址:

  https://github.com/yeokm1/doschgpt