ChatGPT復古玩法: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 做了多方面的努力。首先,他利用了 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