コーディングにChatGPTの力は借りず
MS-DOS用ChatGPTクライアントを作った猛者現る。約40年前のIBM PCで動作
今月初めから人気のAIチャットボットChatGPTのAPIが公開され、様々なアプリに組み込んだり、デバイスからアクセスできるようになった。たとえばApple Watchを通じて音声で対話できる「Petey」(旧名「watchGPT」)も登場している。
そんなブームに沸き立つなか、1984年製のレトロなIBMC PC上で動作するChatGPTクライアントが登場し、Windows以前のMS-DOSでAIチャットボットと対話できる道が開かれている。
レトロコンピューティング愛好家のYeo Kheng Meng氏は、かつてWindows 3.1用のSlackクライアントを作ったこともあり、今回の新たな試みも自然な流れといえる。同氏のブログでは、何か違うことに挑戦しようと思い「さらに古いプラットフォーム向けに開発した」と語られている。
ちなみに、正式名称「IBM 5155 Portable PC」の仕様は次の通りである。
・Intel 8088 4.77Mhz CPU
・RAM 640KB
・CGA ISAグラフィックス
・NE2000互換ISAイーサネットアダプタ
・XT-IDE ISAドライブコントローラ
・MS-DOS 6.22
過去のPCで最新の技術にアクセスする上でのネックは、たいてい「通信」である。そもそもWindowsでも標準でインターネット対応したのはWindows 95以降のことで、Windows 3.xでは別途通信ソフトを組み込む必要があった。今回のMS-DOSマシンでの難度は、それ以上ということになる。
ChatGPTは会話型AIモデルであり、インターネットから収集した知識を使って質問に答え、テキストを生成する。Yeo氏が使ったIBM PC 5155にとっても、テキストのみでの会話ならば(スピードを度外視すれば)十分に可能である。
クライアントの作成には、Windows 11上で動作し、16ビットDOS向けにもクロスコンパイルできるOpen Watcom C/C++を使用。そしてVirtualBoxでMS-DOS 6.22の仮想マシンを使ってテストを行い、最終的なバイナリをIBM PCに転送している。もしも全てがレトロPC上で開発が必須であれば、こうもスムーズにはいかなかっただろう。
それでもIBM-PCとChatGPTとの対話を実現するためには、何層もの通信レイヤーを積み重ねる必要があった。まず1983年に作られた「Packet Driver API」という規格に着目し、これに基づくオープンソースのネットワークライブラリ「MTCP」を利用することでネットワーク機能を実現している。
かたやChatGPTのAPIを使うには、暗号化されたHTTPS接続がなくてはならない。しかしMS-DOSにはネイティブのHTTPSライブラリがないため、Yeo氏は最新のPC上で動作してHTTPとHTTPSを仲介する自作の「HTTP-to-HTTPS」プロキシを使ったとのこと。
要はIBM-PCとOpenAIサーバーの間に、翻訳係として別のPCを置いたわけだ。Yeo氏は「純粋な人はこの解決策を好まないかもしれないが、これが私の能力で合理的な時間内にできるベストだ」と述べている。
またDOSアプリはシングルタスクのため、ユーザーの入力待ちの間はネットワークスタックも止まってしまうことが課題だったという。そこでMTCPの関連資料を参考にして、キー入力を検出した場合はローカルバッファに保存してコンソールに出力することで、プログラムを一時停止させずにキー入力を確認・受信できるようにしたとのことだ。
Yeo氏は自らのコード「doschgpt」をGitHubに公開するとともに、クライアントが予想以上にうまく動作している様子をYouTube上で披露している。このコーディングをするにあたり、ChatGPTの助けは借りていないという。
しかし一応「DOS版ChatGPTクライアント(のコード)が書けるか?」とChatGPTに質問すると「DOSは時代遅れのOSであり、最新アプリを開発するために必要なツールやリソースを持っていない可能性があるため、DOS ChatGPTクライアントの作成は困難であることを念頭に置くように」と回答されている。Yeo氏はその困難を乗り越えて、見事に勝利したわけだ。
- Source: YEO KHENG MENG
- via: Ars Technica