😀
ChatGPTとPyAutoGUIを用いてGUI操作を行う
はじめに
ChatGPTが流行り始めて大分経過してしまいましたが、ようやく少しずつ触り始めています。
ChatGPTとPyAutoGUIを用いて、GUI操作ができないかと簡単に試した結果を記載しようと思います。
今回はお試しということで、ChatGPTの返答を使ってメモ帳操作ができないかを試しています。
実際のコードは以下に公開しています。
先に結果の動画を記載すると以下のようになります。
実行手順
準備
実際にコードを実行して頂く前に事前準備をお願いします。
- 上に記載したgithubリポジトリのBuild environmentを参考に環境構築をお願いします。
- 下の画像の赤枠のようにメモ帳をタスクバーに登録してください。
- 上に記載したgithubリポジトリをcloneして以下のコードの実行をお願いします。
こちらのコードでは、マウスカーソルの現在座標を表示しています。
マウスカーソルをタスクバーのメモ帳の上に合わせて、その座標をメモしてください。
$ python src/show_mouse_posi.py
Current mouse position : x = -1156, y = 42
Current mouse position : x = -2524, y = 185
...
実行
以下のコードを実行し、ChatGPTに命令することで、あとは先頭に記載した動画のように勝手にメモ帳を開き、ChatGPTから返答された内容がメモ帳に記載されるかと思います。
$ python src/demo -apx (準備で取得したメモ帳のX座標) -apy (準備で取得したメモ帳のY座標)
What do you want your PC to do? : (行わせたい命令を入力 : 例 Write an introduction to ChatGPT in Notepad.
)
こちらの簡単な疑似コードは以下になります。
GUI操作命令入力待ち。
ChatGPTによる操作命令の返答推論。
if (返答の中にメモ帳への操作命令がある):
マウスカーソルをメモ帳の位置まで移動。
クリックしてメモ帳を起動。
ChatGPTレスポンスから得られた記載内容をメモ帳へ記載。
ChatGPTへ与えるプロンプトは以下になります。
You give commands to the PC in sentences.
you can give commands to notepad.
Instructions to Notepad should be of the form:
'Notepad: "What to put in notepad" EndNotepad'\n\n
所感
- こちらのコードではまだ画面上のメモ帳の座標を手動で教えているため、今後は「画面の画像 + 自然言語」のみで命令できるようになるとよいかと思います。
- ファイルの保存を行うにしても、「画面上からメモ帳のメニューバーの"ファイル"クリック->"保存"クリック->保存先のフォルダ指定->保存ファイル名入力->保存実行」となかなか難しそうですが。。。
- 今後は画像入力可能なLLMも試してみたいですね。
- 今回は「指定した座標への移動」→「左クリック」→「文字列入力」しか行っていませんが、GUIベースで完全にPCを操作できるようになると良くも悪くも色々できそう。
Discussion