本記事では、ChatGPT×Googleスプレッドシートを利用してリサーチの自動化を実現します。
上記のスプレッドシートは、「GPT for Sheets」というChromeの拡張機能を使ってChatGPTに書き込ませたものです。会社や製品のリサーチ、ショップリサーチなどの作業をChatGPTによって効率的に行うことができます。リサーチ作業はクラウドソーシングサイトでも常に募集のある仕事です。
今回は、会社名から会社の情報をリサーチする表を実際に作成しながらGPT for Sheetsの使い方について説明していきたいと思います。
GPT for Sheetsとは
GPT for Sheetsとは、Google Chromeの拡張機能のひとつです。この拡張機能を入れると、GoogleスプレッドシートやGoogleドキュメント上でChatGPTが使えるようになります。例えば、セルに「ポケモンセンターオンラインの公式サイト」と入力すると、そのセルにポケモンセンターオンラインの公式サイトのURLが書き込まれます。
Webスクレイピングとは違うの?
Webスクレイピングは、Webサイトから任意の情報を抽出・加工する技術のことです。これだけ見ると、「GPT for Sheetsではスクレイピングをしているの?」と思う方もいらっしゃるかもしれません。
しかし、GPT for Sheetsはスクレイピングではありません。Webスクレイピングでは、取得先のURLや、HTMLのどの要素を取得するかなどが予め決まっています。いっぽう、GPT for Sheetsは、実体はChatGPTであり、ChatGPTがネット検索をして情報を拾ってきているだけです。
つまり、ChatGPT同様、間違った情報を取得してくることもあれば、2021年以降の情報は取得できなかったりと、扱いには注意が必要です。ChatGPTを使う上での注意点については以下の記事をご参照ください。なお、本記事では、なるべくデタラメな情報を拾ってくることがないよう質問文を考え、サンプルの関数も共有しますのでぜひ参考にしてみてください。
▼ プログラミング初心者がChatGPTを使って勉強する方法>絶対におさえておくべき注意点
GPT for Sheetsの導入手順
この章では、GPT for Sheetsをスプレッドシート上で使えるようになるまでの手順を説明します。
GPT for Sheetsのインストール
Google Chromeを開いて、検索窓に「GPT for Sheets」と入力して検索します。検索結果の一番上に表示されている「GPT for Sheets and Docs – Google Workspace」を開きます。
「インストール」を押下します。
「GPT for Sheets and Docs のインストールを開始するには権限が必要です。」と表示されるので、「続行」を押します。
「アカウントの選択」というダイアログが表示されます。ここでは、現在ログイン中のGoogleアカウントが表示されているかと思いますので、そのアカウントを選択します。
「GPT for Sheets が Google アカウントへのアクセスをリクエストしています」と表示されます。これは、「Googleのスプレッドシートとかドキュメントなどのアプリケーションで、GPT for Sheetを使えるようにするけど良いですか?」という確認ですので、「許可」を押します。
「許可」を押すとダイアログが閉じます。拡張機能のインストール画面に戻ると以下のようなポップアップが表示されていますが、こちらは閉じてOKです。
ChatGPTのAPIキーを設定
続いて、GPT for SheetsのAPIキー設定を行います。
OpenAI側の設定
まず、OpenAIのAPIのページを開き、「Get Started」を押します。
アカウント作成/ログインページに遷移します。
すでにChatGPTを使ったことのある方は、そのときと同じようにログインします。初めて使う方は、Googleアカウント・Microsoftアカウント・メールアドレスのいずれかを入力して電話番号認証を行い、ログインを完了させてください。
右上のメニューに、「View API keys」とあるのでそこを押します。
API keysという画面に遷移したら、真ん中あたりにある「Create new secret key」を押してAPIキーを発行します。
なお、発行されたAPIはダイアログを閉じると再度表示することはできません。メモ帳などに貼り付けて後の手順で使えるようにしておいてください。また、APIキーは絶対に外部に公開しないようにしてください。
スプレッドシート上の設定
先ほど発行したAPIキーを、スプレッドシートに設定します。
Googleスプレッドシートを開きます。「拡張機能」のメニューから GPT for Sheets and Docs > Set API key を押します。
先ほど取得したAPIキーを設定し、「Save API key」を押します。
スプレッドシート上で、試しに「=GPT(“こんにちは!”)」と入力してみます。
以下のように、ChatGPTからの応答文がセルにセットされたらOKです。
GPT for Sheetsでリサーチを行う
では、GPT for Sheetsを使ってスプレッドシート上でリサーチ作業をしていきます。今回は、
- 会社名から会社の公式ホームページを検索
- 会社の特徴や強み、事業内容、公式サイトのURLなどを表に書き込み
上記を実現したいと思います。
スプレッドシートで表を用意する
まず、書き込み先のスプレッドシートを作成します。Googleスプレッドシートを開いて、以下のようなテンプレートを作成しておきます。
今回は、会社名を検索値として他の列を埋めていくので、あらかじめ会社名を入力しておきます。
スプレッドシートにGPT関数を設定する
スプレッドシートにGPT関数を設定します。GPT関数というのは、ChatGPTの応答文を生成するための関数で、拡張機能を入れると使えるようになります。GPT関数の書き方は以下になります。
=GPT(prompt, [value], [temperature], [max_tokens], [model])
※水色:任意の項目
カッコ書きの部分はオプションなのでなくてもOKです。例えば、「=GPT(“こんにちは”)」とセルに入力すれば、ChatGPTからの応答文がセルにセットされます。
では早速、「特徴・強み」のセルを埋めていきます。セルに「=GPT」と入力すると、GPT関数の候補が出てきます。
用途別に関数が用意されていますので、目的に応じて使い分けると良さそうです。詳しくはリファレンスをご参照ください。
一番上にある「GPT」を押すと、GPT関数の入力ガイドが表示されます。
「prompt」というのはChatGPTへの質問文ですので、「 (会社名) の特徴や強みを教えて」となります。ただ、セルごとに会社名を指定していくのは手間がかかる上メンテナンス性が下がるので、セル番地を使います。さらに、概要を簡潔に書いてもらうために「簡潔に」という指示も記載します。
=GPT(“会社名:” & A2 & “の” & B$1 & “を簡潔に教えて”)
このように記載すると、ChatGPTへの質問文は「会社名:スシローの特徴・強みを簡潔に教えて」となり、セルには以下のようにChatGPTからの応答文が入ります。
項目名(特徴・強み)は固定値なので、B1を必ず参照するよう「B$1」と指定します。これを「B1」と指定すると、オートフィルやコピペなどで他のセルに数式をコピーした際に指定セルがずれる場合があります。
セルに書き込む長さを指定する
本家のChatGPTを使ったことがある方ならわかるかと思いますが、ChatGPTは応答文がとても長くなる場合があります。GPT for Sheetsは、ChatGPT APIを利用して機能を実現しているため、利用量によっては有料になる場合があります。
ChatGPT APIは、最初は無料体験版となっており、その後は重量課金制となります。使用量は「トークン」という単位でカウントされており、ChatGPTとの質問文や応答文の長さがそれにあたります。詳しくは以下記事をご参照ください。
トークン使用量をおさえるには、ChatGPTからの応答文の長さを制限することが有効になります。
GPT関数のオプション引数である、「max_tokens」にトークンの最大値をセットしてあげます。
=GPT(prompt, [value], [temperature], [max_tokens], [model])
試しにmax_tokensに50を設定してみると、以下のようになりました。
今回の例では応答が切れてしまっていますが、「〇〇社の強みを一言で」や「〇〇社のイメージカラー」などの質問文に設定しておけば、つらつらと余計なことまで返ってきて無駄なトークンを消費してしまうということを防げるかと思います。
応答文のバリエーションを指定する
ChatGPTからの応答文を、毎回同じ内容を回答させたいか、ランダムな回答にしたいかを設定することが出来ます。GPT関数の「temperature」に値をセットします。
=GPT(prompt, [value], [temperature], [max_tokens], [model])
セットする値は0~1の範囲で設定します。0をセットすると何度質問しても必ず同じ答えになり、1に近づくほどランダムな答えが返ります。今回は、会社に関するデータを収集するためtemperatureを0にセットしておきます。
会社の公式URLを取得する
会社の公式URLを取得する際には、以下のようにセルに入力します。
=GPT(“会社名:” & A2 & “の” & D$1 & “をURLのみ返して。”)
ここでポイントとなるのは、ChatGPTへの質問文の投げ方です。「〇〇社のURLを教えて」という聞き方をすると、「〇〇社のURLは~~です。」と文章で返ってきてしまい、セルがハイパーリンク化されません。「URLのみ返して」という指示を加えることで、URLのみがセルに書き込まれるようになります。
それぞれの列に値を書き込む関数サンプル
以下に、今回用意したワークシートのセルに値を書き込む関数のサンプルを載せます。ご自身の環境や調べたいキーワードに合わせて適宜中身を変更してください。
項目名 | 関数 |
---|---|
会社名 | 固定値 (値をそのまま書き込む) |
特徴・強み | =GPT(“会社名:”&A2&”の”&B$1&”を簡潔に答えて。”,,0,30,) |
事業内容 | =GPT(“会社名:”&A2&”の”&C$1&”を箇条書き3~5項目程度で完結に返して。”,,0,100,) |
公式URL | =GPT(“会社名:”&A2&”の”&D$1&”をURLのみ返して。”,,0,,) |
関数のサンプルはいずれも2行目のものとなります。まず2行目にそれぞれ値を入れて、オートフィルでそれ以降の行は補完します。
オートフィルは、各セルの右下にカーソルを合わせて、クリックしたまま下にドラッグするとできます。
GPT for Sheetsを使用するうえでの注意点
GPT for Sheetsを使ううえで注意したいのは、なんといってもトークンの利用量です。表の項目が増えれば増えるほどトークン消費量は増えます。ChatGPTの無料版は18ドル分(日本円で約2400円)のクレジットがついていますが、無料分を超えると重量課金制となりますので、大量のデータを処理する場合には気を付けたほうが良いでしょう。
トークン使用量は、OpenAIのマイページから確認することができます。
GPT for Sheetsのエラーとその対処方法
GPT for Sheetsで発生しうるエラーとその対処方法について解説します。
一気に大量の関数を実行するとエラーになる
たくさんのセルに一度にGPT関数を入れたり、何度も関数を修正しては動かしたりを繰り返していると、以下のようなエラーが発生します。
「1分あたりのリクエスト数の制限に達しました。」というエラーです。このエラーが出たら少し時間を置いて再度試してみてください。
OpenAIサーバーが高負荷のときはエラーになる
OpenAIのサーバー自体が高負荷になっている場合はエラーになることがあります。
この場合も少し時間を置いて試してみるしかなさそうです。
GPT for Sheetsで発生しうるエラーはAPI関係のエラーになります。なので、エラーが発生したら基本的には少し時間を置くしかないです。ただ、別シートに書き直して実行するとうまくいくこともありましたので急ぎの際は試してみてください。
なお、GPT関数を使用している場合は、関数の記載ミスはエラーにはならず、内部で補完されます。
所感
GPT for Sheetsを利用してみて思ったことは、ChatGPTへ投げる質問内容次第でクオリティが全然違ってくるということです。普段ChatGPTを使うのと同じように質問すると、スプレッドシートの表に書き込んだ際に何が要点か分かりづらく、見づらい表になってしまいます。
「箇条書きで」「3点挙げて」「単語で返して」など、スプレッドシートにどのような形式で書き込むかを考えながら質問文を作る必要があります。
また、書き込み対象のセルが多い場合、1分あたりのリクエスト数制限に割とすぐ引っかかる印象です。なので、対象のセルが多い場合は応答文の長さ制限を指定したほうが良さそうです。
当ブログでは、ChatGPTに関するGoogle Chromeの拡張機能について他にも紹介していますので、ChatGPTをより便利に使いたいという方はぜひご覧ください。
コメント