仕事で使っているあるスプレッドシートをソースとしてある分析をしたいと思ったときにChatGPTのcode interpreterを利用して分析してもらおうと一瞬思ったのだけれども、そのソースのスプレッドシートのサイズがある程度の大きさだったり、そもそも扱っているデータの兼ね合いもあるので、ChatGPT側で処理をするのではなくて以下の様な手順でGoogle Apps ScriptをChatGPTに組んでもらった。やり方は...
- ChatGPTに目的とする分析結果を得るための手法を3つ提案してもらう
- 提案してもらった中から現状のデータセットを鑑みて試してみたいと思う手法を1つ選ぶ
-
- で選んだ解析をGoogle Apps Scriptで実装してほしいと伝える。その際にスプレッドシートの仕様を添える (1行目はラベルで2行目以降にデータがセットされており1列目は識別子で2列目は... といった具合でデータの諸元となるシートの仕様を箇条書きにして伝える)
- ChatGPTから出力されるGoogle Apps Scriptをスプレッドシートにセットする
- スクリプトを実行する
- 実行した結果を確認する
といった流れ。4.から6.を繰り返してブラッシュアップしていくのだけれども30分くらいのやりとりで120-130行くらいでかなりスマートな(と自分には見え、少なくとも自分には書けない)スクリプトを出力してくれて、これを現時点での自力で書いてたらもっと時間かかっていただろうなと思うのと、こういったやり方が引き続き実現できるのであれば30代までにエンジニアとしてコードを書くことを生業にしていたことが違う形で活かすことができて面白いなと思った。
出力されるコード自体が所望の動きをするものかは確認しないといけないのだけれども、それも
- ログを入れてほしい
- 出力結果の検証をしたいのだけれどもどういったログを確認するとよいか
といったコミュニケーションをChatGPTと取っていたら、各処理の開始と終了、データをパースする際の先頭と最後をログ取る様にするのでそれが意図した挙動の出力になっているか確認するとよいと思うと言われ、ではそれで確認するのでスクリプトをアップデートしてほしい。といった一連のやりとりでスクリプトは更新されていくのであった。
そして、それで確認すると変なところでセル内の数値の加算の処理がスクリプトでは文字連結されているのに気づいたり、集計時のハッシュのキーが誤っていたりと不具合に自分が気づき、再びそれをフィードバックすると... という具合で自分が望むスクリプトが組み上がっていくのは二人組になってペアプログラミングしている様な感覚。
もう少しこのあたり自分なりに体系化してみたい気もする。
最近のコメント