新加坡的逆向計(jì)算愛好者 Yeo Kheng Meng 發(fā)布了一個(gè) “doschgpt” ChatGPT 客戶端,這個(gè)客戶端適用于上世紀(jì)八十年代的 MS-DOS 系統(tǒng)。
目前這個(gè) DOS 系統(tǒng)的 ChatGPT 客戶端已成功在 1984 年的 IBM 5155 便攜式 PC 上運(yùn)行,這臺(tái)機(jī)子配備 4.77Mhz 主頻的 Intel 8088 CPU 和 MS-DOS 6.22 系統(tǒng),帶 640KB 內(nèi)存、以及 CGA ISA 圖形。
?Yeo 老哥是個(gè)不折不扣的 “復(fù)古守舊派”,早在 2019 年他就為 Windows 3.1 開發(fā)了一個(gè) Slack 客戶端,這次更是把 1981 年的 MS-DOS 純文本操作系統(tǒng)和最新的 ChatGPT 兩個(gè)跨了 40 多年的東西組合到一塊。
最有意思的是整個(gè)程序的開發(fā)過程, Yeo 老哥先是找到一個(gè)能開發(fā) 16 位 DOS 程序的 “Open Watcom” C/C++ 編譯器 ,它本身是一個(gè) 32 位程序,這意味著它可以在 64 位 Windows 11 等現(xiàn)代平臺(tái)上運(yùn)行。
但是 64 位的 Windows 又沒法執(zhí)行 16 位的 DOS 程序,而每次都在 640K 內(nèi)存的老電腦上跑測試也并不是很現(xiàn)實(shí)。于是 Yeo 開一個(gè)運(yùn)行 DOS 6.22 的 Virtualbox 虛擬機(jī),然后將虛擬機(jī)和主機(jī)橋接網(wǎng)絡(luò),方便傳輸文件進(jìn)行開發(fā)和測試,等測試完成后再把二進(jìn)制文件傳到實(shí)際的 IBM PC 上運(yùn)行。
?但這時(shí)另外一個(gè)問題來了:如何在這么老的 IBM PC 上處理網(wǎng)絡(luò)?? 在這一步 ,Yeo 找到了一個(gè) 1983 年的 Packet Driver API ,然后使用開源的 MTCP 庫集成到應(yīng)用程序中,以與 Packet Driver 進(jìn)行通信,從而為客戶端啟用網(wǎng)絡(luò)功能。
?而要使用 ChatGPT API,必須要有一個(gè) Post 請(qǐng)求,然而 DOS 沒有可以使用的輔助函數(shù),必須用 C 語言手動(dòng)構(gòu)建整個(gè) POST 請(qǐng)求:
#define API_CHAT_COMPLETION "POST /v1/chat/completions HTTP/1.1\r\nContent-Type: application/json\r\nAuthorization: Bearer %s\r\nHost: api.openai.com\r\nContent-Length: %d\r\nConnection: close\r\n\r\n%s"
#define API_BODY "{ \"model\": \"%s\", \"messages\": [{\"role\": \"user\", \"content\": \"%s\"}], \"temperature\": %.1f }"
這時(shí) ChatGPT API 會(huì)返回一份?JSON?輸出,需要解析其中 “Content” 鍵的值。很明顯,這一步也沒有現(xiàn)成的 JSON 庫可用,只能手動(dòng)寫鍵值對(duì)的解析代碼。
?這時(shí)新的問題來了:ChatGPT API 通過 HTTPS 加密,但 DOS 系統(tǒng)沒有本機(jī) HTTPS, Yeo 只能編寫一個(gè) go 語言的 HTTP 到 HTTPS 代理?(有點(diǎn)像中間服務(wù)器),然后在現(xiàn)代 PC 上運(yùn)行這個(gè)代理。充當(dāng)一個(gè)透明中間人。它檢查 HTTP 請(qǐng)求的主機(jī)字段,并將原始套接字字節(jié)作為 HTTPS 轉(zhuǎn)發(fā)到 OpenAI 的服務(wù)器。
?這一步有點(diǎn)像作弊,但屬實(shí)是無奈之舉,畢竟要在 Intel 8088 上運(yùn)行現(xiàn)代 TLS 加密算法,屬實(shí)是太難為這個(gè)傳家寶系列的 CPU 了。
剩下的就是如何將對(duì)話內(nèi)容讀 / 寫輸入到控制臺(tái),這一步不再贅述,感興趣的朋友可以在 Yeo 的博客中查看完整的開發(fā)過程。最終實(shí)現(xiàn)的效果:
?Yeo 已經(jīng)把整個(gè) doschgpt 客戶端在?Github?上開源,里面有詳細(xì)的教程,感興趣的朋友可以自己動(dòng)手試試(前提是家里有 MS-DOS 系統(tǒng)的傳家寶機(jī)器??...)
另外,這回圖拉丁老哥們有話說了,還在嫌棄機(jī)子的配置不行?處理器低于 3.0 Ghz 不能用?人家怎么就能在 4.77Mhz 的 CPU 上跑 ChatGPT ?還不是自己動(dòng)手能力太差!還是那句話,東西老點(diǎn)差點(diǎn)怎么了,又不是不能用!
相關(guān)鏈接:https://github.com/yeokm1/doschgpt文章來源:http://www.zghlxwxcb.cn/news/detail-425521.html
-END-文章來源地址http://www.zghlxwxcb.cn/news/detail-425521.html
到了這里,關(guān)于太神奇了,1984 年的電腦也能跑 Chat-GPT的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!