昨年秋以降、ChatGPTなどテキスト生成AIの人気はとどまるところを知らない状態です。今月には、マイクロソフトがWindows 11のCopilot機能にChatGPT技術を統合し、ブラウザーなどだけでなくOSレベルでも生成AIが利用可能になってきました。
一方、古いPC、古いOSを大切に使い続けてきた人々が、時代の流れに置き去りにされ、最新技術の恩恵を享受できなくなっていくのは避けられません。ところが、ウェブサイトDialup.netの開発者は、Windows 3.1環境で動作するChatGPTクライアントアプリ「WinGPT」を開発、16ビット時代のOSで最新のテキストAIチャットボットを利用可能にしました。
Windows 3.1用AIアシスタント「WinGPT」はインテル386以降のCPUを搭載する16および32bitのWindows OSにWinsockを導入した状態で動作します(64bit OSは動作対象外)。
WinGPTはその開発において標準のWindows APIを使い、C言語でコーディングされました。また開発者は、TLS 1.3の16bit版を自前で用意し、OpenAI APIサーバーへのネイティブなアクセスを実現しています(ただし開発者は、この接続の安全性は保証できないと警告もしています)。あとはもちろんOpenAI APIのキーが必要です。
開発者は、Windows 3.1でWinGPTを動作させる際、OSが持つUIの貧弱さに苦慮したと述べています。特にウィンドウ下枠部のステータスバーには意図した表示がなかなかできず、ChatGPTにも相談したとのこと。
ChatGPTは期待通り解決策を提案してきましたが、それはどうやら後のバージョンのWindowsでしか提供されないヘッダーファイル(CommCtrl.h)を使うというものでした。本当にWindows 3.1でCommCtrl.hが使えるのか、さらに明確にするよう開発者が再び質問したところ、ChatGPTは誤りを謝罪し、かわりに非常にありそうな、しかし、まず存在しないであろうWindows 3.1 Common Control(WCC)という名のライブラリを紹介してきたとのこと。
結局、この問題は1997年に公開されたWindows用のステータスバーの実装方法が現在も公開されているのを発見し、そのコードに今回の用途に使えるよう手を加えたものを使用したとのことです。
ほかにも開発においては、非常に少ないメモリ容量で動作できるよう工夫を凝らしたとのこと。当時のPCが搭載するメモリーはせいぜい8MB程度だったはずで、WinGPTではAPIの回答を可能な限り簡潔にするようになっています。
さて、開発者が公開した、WinGPTが動作している様子を捉えたスクリーンショットを見てみると「現在のアメリカ合衆国台大統領は誰?」との問いにWinGPTは「ジョージ・H・W・ブッシュ」と答えています。ジョージ・H・W・ブッシュ氏は1989~1993年にかけて第41代合衆国大統領を務めた人物です。
WinGPTが現在を1980年代末~1990年代前半だと勘違いしているのは、Windows 3.1が使われた時代背景をソフトウェア的に反映しているからなのか、PCやOSを動作させるためにシステムクロック設定をいじっているためなのかは説明されていません(当時のPCのBIOSのなかには、2000年以降の日付設定で起動しないものもありました)。OpenAI APIを介して回答を得ているだけなら、日付の処理はサーバー側の設定が使われそうな気もします。
別のスクリーンショットではWinGPTにお勧めのPCを問い合わせており「WindowsまたはDOSが動作するIBM互換PC、もしくはアップルのMacintoshか、コモドールのAmiga」との回答を得ていることから、おそらくはわざと1990年代前半の設定で回答するようになっていると考えられます。
ちなみに、古いPCでChatGPTライクなAIチャットボットを利用する他の選択肢としては、Javaで動作するJavaGPTというアプリも存在します。こちらはJava 8で動作するため、Windows 98などのシステムでも実行が可能だそうです。