😀

ChatGPTとPyAutoGUIを用いてGUI操作を行う

2023/06/13に公開

はじめに

ChatGPTが流行り始めて大分経過してしまいましたが、ようやく少しずつ触り始めています。
ChatGPTとPyAutoGUIを用いて、GUI操作ができないかと簡単に試した結果を記載しようと思います。

今回はお試しということで、ChatGPTの返答を使ってメモ帳操作ができないかを試しています。
実際のコードは以下に公開しています。

https://github.com/nishijima13/chatgpt_gui_operation_sample

先に結果の動画を記載すると以下のようになります。

実行手順

準備

実際にコードを実行して頂く前に事前準備をお願いします。

  1. 上に記載したgithubリポジトリのBuild environmentを参考に環境構築をお願いします。
  2. 下の画像の赤枠のようにメモ帳をタスクバーに登録してください。
    qiita1.png
  3. 上に記載した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