网站首页 > 技术教程 正文
选自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
猜你喜欢
- 2025-10-19 都已经2025年了,UCDOS和FOXBASE软件还有人在用?你会相信吗?
- 2025-10-19 电脑安装ghost好,还是原装windows好?两者主要有这几点区别
- 2025-10-19 DOSBox 使用指南:在现代电脑上重温经典 DOS 游戏
- 2025-10-19 回忆中的汉字系统——那些年我们一起用过的UCDOS
- 2025-10-19 等了30年,微软MS-DOS神器重生:用Rust重写、开源斩获9.9k Star、还能跑在Linux上!
- 2025-10-19 6个必备的DOS命令,让你的Windows使用更高效
- 2025-10-19 dos命令systeminfo,查看系统启动时间。电脑卡慢,win10怎么了?
- 2025-10-19 为什么星际争霸有人口限制而红色警戒却没有呢?
- 2025-10-19 考古微软最早带货视频,只卖99美元的Win1.0
- 2025-10-19 玩家展示现代硬件上运行的MS-DOS 拥有令人难以置信的向后兼容性
欢迎 你 发表评论:
- 10-23Excel计算工龄和年份之差_excel算工龄的公式year
- 10-23Excel YEARFRAC函数:时间的"年份比例尺"详解
- 10-23最常用的10个Excel函数,中文解读,动图演示,易学易用
- 10-23EXCEL中如何计算截止到今日(两个时间中)的时间
- 10-2390%人不知道的Excel神技:DATEDIF 精准计算年龄,告别手动算错!
- 10-23计算工龄及工龄工资(90%的人搞错了):DATE、DATEDIF组合应用
- 10-23Excel中如何计算工作日天数?用这两个函数轻松计算,附新年日历
- 10-23怎样快速提取单元格中的出生日期?用「Ctrl+E」批量搞定
- 最近发表
-
- Excel计算工龄和年份之差_excel算工龄的公式year
- Excel YEARFRAC函数:时间的"年份比例尺"详解
- 最常用的10个Excel函数,中文解读,动图演示,易学易用
- EXCEL中如何计算截止到今日(两个时间中)的时间
- 90%人不知道的Excel神技:DATEDIF 精准计算年龄,告别手动算错!
- 计算工龄及工龄工资(90%的人搞错了):DATE、DATEDIF组合应用
- Excel中如何计算工作日天数?用这两个函数轻松计算,附新年日历
- 怎样快速提取单元格中的出生日期?用「Ctrl+E」批量搞定
- Excel日期函数之DATEDIF函数_excel函数datedif在哪里
- Excel函数-DATEDIF求司龄_exceldatedif函数计算年龄
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)

本文暂时没有评论,来添加一个吧(●'◡'●)