皆様こんにちは。ネットワーク事業部の生方です。
今や様々な場面で話題になっているAIサービスですが、弊社ブログでもたびたびAI関連の内容を取り上げてきました。
構図と言葉を元にAIが画像を生成してくれる「Scribble Diffusion」
最新AI事情(2023年4月):ChatGPTに加え、マイクロソフトのAIを活用した業務効率化とは?
特に、AIサービスとして今や広く名前の知られることになった「ChatGPT」ですが、ブラウザ上で利用するだけではなくGoogle Spreadsheetなどの外部機能と連携させて、アプリ内でChatGPTの機能を利用することができます。
今回は、Google SpreadsheetでChatGPTを利用するための手順や、実際にどんなことができるのかをご紹介したいと思います。
APIキーの取得
ChatGPTと別のアプリケーションを連携させるためには、OepnAIのユーザが発行できる「APIキー」が必要になります。
ここでは、すでにOpenAIやGoogleのアカウントは取得済みの前提で進めていきたいと思います。
ちなみに、APIキーは有料サービスで、連携のリクエストを実行するたびに料金が発生する従量課金性ですが、キーをを取得した際に18ドル分の無料枠が割り当てられます。(有効期限3か月)
それ以降は課金登録をしていない場合、APIは使用できなくなりますのでご注意ください。
①OpenAIのサイトにアクセスし、「Sing up」から取得済みのアカウントでサインインします。
②OpenAIのメニューから、「API」をクリックします。
③右上の「Personal」→「View API keys」をクリックします。
④「+ Create new secret key」をクリックします。
⑤作成するAPIキーの名前を入力します。ここで付ける名前は管理用のものですので、分かりやすい名前で結構です。
⑥APIキーが作成されますので、コピーして控えておいてください。
完了後は「Done」をクリックして元の画面に戻ります。
Google Spreadsheetとの連携
取得したAPIキーを使って、Google Spreadsheetと連携できるように設定しましょう。
Google SpreadsheetでChatGPTの機能が使用できるアドオンが公開されていますのでそちらを利用します。
①Googleアカウントにログインし、Spreadsheetを表示します。
上部のメニューから「拡張機能」→「アドオン」→「アドオンを取得」をクリックします。
②上部の検索ボックスで「chatgpt」と検索します。
「GPT for Sheets and Docs」というアドオンを選択し、「インストール」をクリックします。
③アカウントの選択やリクエストの許可を行い、インストールが完了します。
gpt関数を使ってみよう
アドオンを追加することで、「gpt関数」が新たに使用できるようになります。gpt関数にもいくつか種類があり、それぞれ結果の表示方法が異なります。
gpt関数
まずは一番基本となる関数の「gpt」です。
例として、セルB1に質問したい内容を記入しておきます。
その質問に対する回答をB2に表示するために、B2に『=gpt(B1)』と入力します。
通常のExcelやSpreadsheetで使用する関数と同じ仕組みですので、セルの指定は直接B1と入力しても、対象のセルをクリックしてもどちらでもOKです。
数式入力後に確定すると、サーバへの問い合わせのために数秒間「Loading…」と表示され、その後に回答が表示されます。
ちなみに、質問の入力は範囲指定をすることも可能です。
以下のように質問をA1:A4の範囲に記述し、A6に『=gpt(A1:A4)』と入力します。
すると、結果としてA6にすべての回答結果が表示されます。複数の回答をまとめて出したり、質問内容が変動する場合には便利な方法です。
gpt_list関数
前述の「gpt」は一つのセルに回答を表示しましたが、「gpt_list」関数は回答をリスト(一覧)形式で複数のセルに表示します。
質問はA1:A2の範囲に記述し、B1に『=gpt_list(A1:A2)』と入力します。
すると、B1を起点として結果を1セルずつリストで表示してくれます。
gpt_table関数
「gpt_table」関数は、回答結果が表形式で表示されます。
先ほどの質問をgpt_tableで表示してみましょう。B1に『=gpt_table(A1:A2)』と入力すると、B~C列にわたって表形式で結果が表示されます。
gpt_tableになると、一番上の行に項目名も自動で表示されるようになります。
gpt関数を使って気づいたこと
では、実際にgpt関数がどのように使えそうか試してみましょう。今回は例として、国別の人口を年別に表示して、グラフを表示してみようと思います。
セルA1:A4に質問を入力し、A7に『=gpt_table(A1:A4)』と入力して結果を表示しました。
参照元も質問に入れたため、データソースとなるURLも結果に表示されました。
その1…データソースや回答結果が問い合わせごとに変わる
これはブラウザでChatGPTを使用するときにもありがちですが、問い合わせするたびに回答結果が変わってきたりします。
AIの判断や参照元のデータが一定でないことが要因と思われますが、人口のような統計データも各所で公開されて数値の差異もあることから、読み込むたびに内容が変わってしまう場合があります。
その2…結果をそのままグラフや他の関数に渡せない
gpt_tableで表示された結果を基にグラフを表示しようとしましたが、そのままではグラフが表示されませんでした。
どうやら、gpt_tableやgpt_listで表示された結果は見かけ上セルに入っているものの、実体は無い扱いのようです。
SUM関数で表示された数値を合計しようとしても認識されませんでした。
対処法として、回答結果をコピーして「値のみ貼り付け」で別領域に貼り付けて、なおかつ表示形式を数値に設定することで、初めて数値として認識することができました。
貼り付けた内容を参照することでグラフも作成することができました。
この辺りは関数の仕組み上やむを得ないところかもしれませんが、ちょっと実用性が薄くなってしまうところだと感じました。
まとめ
ChatGPTに質問した内容をそのままシート上に表示・保存できるのは便利ですし、リストや表の形式で結果が出せるのもデータ分析などには有効だと思いました。
ただし、現段階では回答内容のブレや信憑性の課題があったり、他の関数などとの連携が不十分だったりとちょっと物足りないところも感じました。
ただ、AIサービスとOfficeソフトはすでに連携が進んでおり、Microsoft 365に搭載されるAIサービスの「Microsoft 365 Copilot」も先日発表されました。データ分析や文書の草案作成がAIによって行われるということが基本機能に統合されれば、学習によるデータの信憑性向上も望めるでしょう。
私がまだAIを十二分に活用できていないところもありますが、今後機能が洗練されてくると、もっと面白い使い方ができるのではないかと思いました。
このような技術発展は、ユーザが増えて様々なノウハウが集まると大きく進歩する可能性がありますので、皆様もぜひ試してみてください。