2024.03.27
ChatGPTでデモデータを作る
ChatGPTでは文章の生成が出来るAIであることを前回ご紹介しました。
今回はChatGPTの回答をスプレッドシートに書き出してもらうプログラムの作成したことについて紹介します。
ことの発端
あらすじ!
展示会に「らくーざ」を出すためのデモ動画を作ることになった私たち。
デモのためには架空のユーザがたくさん必要だけれど、それっぽい名前をたくさん考えるのは思っていたより時間のかかる作業でした。
(中略)
わたし
技術者
こうして技術者のMさんにお願いして、デモデータをスプレッドシートに一覧にして出すプログラムを作っていただきました。
私は手も足も出なかったので、制作中に質問したことなどをまとめます。
「デモデータを作る」プログラム
どうせ作るなら汎用性が高い方がいいので、架空の 会社名、メアド、人名、住所、性別を生成できるものにしたい要望を技術者Mさんに相談しました。
技術者
とのことで、APIを使うことになったようです。
【APIとは?】
Application Programming Interfaceの略で、ソフトウェアとソフトウェアを連携させるインターフェースのこと。
コードを書くのに使用するのはスプレッドシートと「Apps Script」です。
たとえばこのようにApps Scriptを使って、自分で関数を作ります。
- functionは関数と呼ばれるものです。
- すぐ横のtestは関数の名前で、自由に名前をつけられます。
- return〜の部分は何をするかの指示です。ここで具体的になにをするのかを指示しなければプログラムは動いてくれません。
未経験の新人アルバイトに「タイムカードを切って」(動作の名前)と指示して実行してもらうために「出勤した時に、この紙を機械に通して打刻してね。」(やり方)と教えるように、コンピュータにも指示をします。
例に挙げているこの関数「test」では、スプレッドシートに「=test()」と書いたらreturn(指定した” ”の中が表示されるように)してくださいと指示しています。
このような調子で、ChatGPTとスプレッドシートをAPI連携させてもらいました。
ソースコードについては割愛させていただきます。
スプレッドシートの任意のセルに「=GPT4(“ (作って欲しいデータの詳細) ”)」と書き込めば、生成したデータをスプレッドシートに書き込んでくれます! 例:=GPT4(“架空の日本人の名前とメールアドレスと性別を「,」で区切って10個分挙げて。”)
しかし、ただ単に「架空の日本人の名前とメールアドレスと性別を10個分挙げて。」などとお願いすると、セル一つにまとめて(しかも頭に数字を振って)書いてしまいます。
考えてくれて嬉しいけどコピーして使いにくいから、項目ごとにセルを分けてほしいな。
しかしChatGPTにはスプレッドシートの編集ができません。
そこで、「テキストを入力したときにセルが分かれる記号」を調べました。
スプレッドシートのセルを分けるにはどうやら[aaa],[bbb],[ccc]のように書かれていれば良いようです。
多次元配列という名前でした。
また、頭の数字や「わかりました」などの会話をなくすために「簡潔に」とお願いしました。これで単語で返してくれます。
ChatGPTには前提条件として「それぞれを[[aaa],[bbb],[ccc]]のように多次元配列に入れて簡潔に答えて。」と伝えます。(割愛したソースコード内で実施しています。)
求めていたデモデータの姿です。
ありがとうChatGPT、ありがとう技術者Mさん。
これで使い勝手がいいデータになりました。手動でコピーしても楽、CSVにしても楽。
今回のAPI連携でChatGPTに「スプレッドシートに流したときに都合のいいデータ」を生成してもらう工夫を身につけました。
コピーする先の都合に合わせた文書を生成させる工夫をすると他のソフトウェアとの連携もより便利にできそうだと思います。
かなり仕事の効率化に活用できそうなので、ぜひみなさんもやってみてください。