はじめに
レトロコンピュータで生成AIを使用する例が、いくつか知られています。
MS-DOSとESP32を組み合わせて、Deepseekを使う例は以下の通りです。
初代ゲームボーイとArduino、Raspberry piを組み合わせて、ChatGPTを使用する例は以下の通りです。
上記の例は、APIを使ってプロンプトと回答のやり取りをしています。
かずえだの手元にあるレガシーマシンでも試してみようと計画しました。
ここでは、汎用性の高いシリアルターミナルから、Copilotのサイトにプロンプトを送信して回答を受信するシステムを紹介します。
この記事の一部は、2025年9月21日の「鹿児島Linux勉強会2025.09」および2025年11月15日の「[ゆるIT勉強会浜松] 土曜勉強会」で報告しました。
Microsoft Copilotはブラウザ上で利用する
APIを使ったプロジェクトはいろいろありますが、無料で使えるCopilotには存在しません。ブラウザ上のウィンドウにプロンプトを入力して、得られた回答をシリアルターミナルへ転送する仕組みを作ります。
Linuxボックスを介してプロンプトと回答を送受信
作成したpythonスクリプトは3種類です。
1.ターミナルから入力されたプロンプトをLinuxボックス内に保存するスクリプト
2.Linuxボックス内のプロンプトの書かれたファイルと回答の書かれたファイルを管理し、Copilotの回答をターミナルに表示するスクリプト
3.Linuxボックス内のプロンプトの書かれたファイルをCopilotの窓に代入し、表示された回答をテキストファイルとして保存するスクリプト
困った点と解決方法
ヘッドレスで動作させようとすると、プロンプトが入力できません。
LinuxボックスのデスクトップでFirefoxを起動しておく必要があります。
このFirefox上のCopilotの窓に、プロンプトを書き込みます。
Pythonスクリプトの動作
スクリプト1で、プロンプトをファイルに出力します。
ファイルが作成されたら、プロンプトに入力します。
回答が生成されたら、回答部分をファイルに出力すると同時に、回答の出力が完了したことを知らせるファイルを作成します。
回答の出力が完了したことを知らせるファイルの生成を確認して、回答部分のファイルの内容をターミナルに表示します。
プロンプトファイル、回答ファイル、回答の出力が完了したことを知らせるファイルを消去して、終了します。

動作の実際
実験環境として、Virtualbox上のubuntu22.04を使用しています。
「selenium」と「Firefox」、「firefox-geckodriver」を追加インストールしました。
デスクトップ環境で、Firefoxを起動し、スクリプト2を起動します。
まとめ
現時点では、画面を更新するので、連続してプロンプト回答のやりとりを続けられない状況です。スクリプトを修正して、連続して会話ができるよう修正していきます。
また、Linuxボックスが仲介しているので、この部分をMCUなどに置き換えていきます。


