生成系AIと人間の理解の溝を埋める【ChatGPTを使ってみよう!】
私は、自力でGASコードを書けないので、ChatGPT に書いてもらいました。
いったんは、うまくいったものの、
その後、実行されなかったというエラーメッセージが届くようになりました。
自分なりに、ChatGPTが理解できるようなプロンプトを作成したつもりだったのですが、
伝え方にまだまだ改善の余地があるのはもちろんのこと、
そもそも、ChatGPT を万能と勘違いしたことに問題があったようです。
AI は意味づけを理解できない
人間は、意味づけを無造作に行っていますが、
AI は、この意味づけを理解できないようです。
人間は、視点を遠近自在に変えて、
行動、操作の意味合いを類推するとか、
全体的に何をしようとしているのか。など把握しようとしますが、
ChatGPT は 求められたことを求められた順にブツブツと細切れにして、対応しているように思われます。
私は、自分の行いたい操作、自動化させたい操作を時系列に表せばうまくいく。と考えていたのですが、
AI がそれをどのように理解するのかということまでは考えがいたっていませんでした。
まさに「相互理解」で、
修正をくりかえして、AI と人間の理解の仕方の溝を埋める必要があるのではないかと思います。
実行されないのは、AI のせいじゃない!
ブログの更新通知をInstagram で行うため、
ブログのアイキャッチ画像のファイル名を公開日の日付を4桁で表したものに変更し、
投稿の数時間後、アイキャッチ画像を削除するようなGASコードを書いてもらっていました。
ざっくりいうと、
「Instagramに投稿した当日20時に、フォルダーにある4桁の日付のJPEGファイル を削除する。」
というGASコードだったのですが、
翌日になっても、投稿済みのアイキャッチ画像が削除されたようすはありませんでした。
ChatGPTは、まことしやかに間違ったことも言うので、
使う側にリテラシーがいる。ということはわかっていましたので、
やっぱりGAS なり、JavaScript なりを勉強するべきなのかな。
と思ったりもしたのですが、ちゃんと動くコードも書いてくれたので、
なんちゃってコードだったとは思えません。
こちら側のお願いの仕方に問題があったのではないか。と
ChatGPT に誤解の余地がない指示の出し方を考えてみることにしました。
それ、AI に理解させる必要ある?
まず、20時に実行というのは、トリガーで設定できるとわかったので、(コードに書く必要はない)
お願いから削除しました。
そして、これが最大の肝だったと思うのですが、
ファイル名の4桁の数字が日付を表したもの。という意味づけを教えるのをやめました。
素人の印象ですが、
4月を04と表す。というのを、
AI に理解させ、それをコードに反映させるのは、結構難しいようなのです。
人間なら、1日から9日や、1月から9月は0をつけなかったら、
2桁とか3桁になっちゃうもんね。と、
0をつける意味をわかってくれますが、
機械にここらへんの融通を利かせるのは難しそうです。
そこで、
「4桁の数字の最小値がファイル名となったJPEG ファイルを1つだけ削除して。」と表現しました。
さらに、
「もし、0405.JPEG 、0812.JPEG 、1215.JPEG とあったら、
最小の0405.JPEG だけを削除する。」と操作例もあげておいたところ、
ChatGPT は、「複数のJPEG ファイルがあるときに実行する。」と解釈したらしく、
「ファイルが2つ以上ある時に実行し、1つ以下の時は実行しない」コードを書いたと教えてくれました。
なるほど、ファイルが1つしかない時は、
最小であると同時に、最大でもありますからね。
数学を学んで、厳密で限定的な場合分けができるようになったと思っていましたが、
ChatGPT の前ではまだまだだったようです。
もちろんすぐに、JPEG ファイルが1つ以上ある時の最小値と書き直してもらいました。
こうやって、都度直していくと、コードの内容がどんどん変わっていきました。
以下の記事一覧に他のボリュームのブログカードを載せています。
途中のボリュームからお読みになった方はこちらからどうぞ。