1984 年的电脑也能跑 Chat-GPT ?!

👇👇关注后回复 “进群” ,拉你进程序员交流群👇👇

出品 | OSC开源社区(ID:oschina2013)

新加坡的逆向计算爱好者 Yeo Kheng Meng 发布了一个 “doschgpt” ChatGPT 客户端,这个客户端适用于上世纪八十年代的 MS-DOS 系统。

目前这个 DOS 系统的 ChatGPT 客户端已成功在 1984 年的 IBM 5155 便携式 PC 上运行,这台机子配备 4.77Mhz 主频的 Intel 8088 CPU 和 MS-DOS 6.22 系统,带 640KB 内存、以及 CGA ISA 图形。

1ab5e0489898ab0c022ea0e0e5181464.jpeg

Yeo 老哥是个不折不扣的 “复古守旧派”,早在 2019 年他就为 Windows 3.1 开发了一个 Slack 客户端,这次更是把 1981 年的 MS-DOS 纯文本操作系统和最新的 ChatGPT 两个跨了 40 多年的东西组合到一块。

最有意思的是整个程序的开发过程, Yeo 老哥先是找到一个能开发 16 位 DOS 程序的 “Open Watcom” C/C++ 编译器 ,它本身是一个 32 位程序,这意味着它可以在 64 位 Windows 11 等现代平台上运行。

但是 64 位的 Windows 又没法执行 16 位的 DOS 程序,而每次都在 640K 内存的老电脑上跑测试也并不是很现实。于是 Yeo 开一个运行 DOS 6.22 的 Virtualbox 虚拟机,然后将虚拟机和主机桥接网络,方便传输文件进行开发和测试,等测试完成后再把二进制文件传到实际的 IBM PC 上运行。

d5913b6042c613516384fab39b18604d.png

但这时另外一个问题来了:如何在这么老的 IBM PC 上处理网络?  在这一步 ,Yeo 找到了一个 1983 年的 Packet Driver API ,然后使用开源的 MTCP 库集成到应用程序中,以与 Packet Driver 进行通信,从而为客户端启用网络功能。

6686f01e3686edcc284e92649ae34d75.png

而要使用 ChatGPT API,必须要有一个 Post 请求,然而 DOS 没有可以使用的辅助函数,必须用 C 语言手动构建整个 POST 请求:

#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 }"

这时 ChatGPT API 会返回一份 JSON 输出,需要解析其中 “Content” 键的值。很明显,这一步也没有现成的 JSON 库可用,只能手动写键值对的解析代码。

1d4e276605e56b7284ecdf74fea2272e.png

这时新的问题来了:ChatGPT API 通过 HTTPS 加密,但 DOS 系统没有本机 HTTPS, Yeo 只能编写一个 go 语言的 HTTP 到 HTTPS 代理 (有点像中间服务器),然后在现代 PC 上运行这个代理。充当一个透明中间人。它检查 HTTP 请求的主机字段,并将原始套接字字节作为 HTTPS 转发到 OpenAI 的服务器。

225a4165c33eb66484454bf3c633a4b0.png

这一步有点像作弊,但属实是无奈之举,毕竟要在 Intel 8088 上运行现代 TLS 加密算法,属实是太难为这个传家宝系列的 CPU 了。

剩下的就是如何将对话内容读 / 写输入到控制台,这一步不再赘述,感兴趣的朋友可以在 Yeo 的博客中查看完整的开发过程。最终实现的效果:

963b8b7f16fc5b6dac637e8c20467ebc.jpeg

Yeo 已经把整个 doschgpt 客户端在 Github 上开源,里面有详细的教程,感兴趣的朋友可以自己动手试试(前提是家里有 MS-DOS 系统的传家宝机器😂...)

另外,这回图拉丁老哥们有话说了,还在嫌弃机子的配置不行?处理器低于 3.0 Ghz 不能用?人家怎么就能在 4.77Mhz 的 CPU 上跑 ChatGPT ?还不是自己动手能力太差!还是那句话,东西老点差点怎么了,又不是不能用!

相关链接:https://github.com/yeokm1/doschgpt

-End-

最近有一些小伙伴,让我帮忙找一些 面试题 资料,于是我翻遍了收藏的 5T 资料后,汇总整理出来,可以说是程序员面试必备!所有资料都整理到网盘了,欢迎下载!

ede9ee558c6db5aad8e62b754471255c.png

点击👆卡片,关注后回复【面试题】即可获取

在看点这里170e5bae9de5ac1d69a901e5aa4a69ec.gif好文分享给更多人↓↓

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值