科学发展的奇迹39年前老电脑与DOS系统也能让人物玩转
当 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 做了多方面努力。首先,他利用了 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 之间请求和响应,在通信过程中充当透明中间人。
Yeo 说,由于DOS 应用的单线程性质,对于向控制台读写输入也是另一种挑战。他设计了一种在不暂停程序的情况下检查和接收按键方法,以MTCP 页面为参考。
最后,该客户端效果比预期还要好。他详细描述他的开发过程。
博客地址:https://yeokhengmeng.com/2023/03/building-a-dos-chatgpt-client-in-2023/
相关代码参加 GitHub项目:
项目地址:https://github.com/yeokm1/doschgpt