ChatGPTをGoogle Spreadsheetで利用する方法を解説!

ChatGPTをGoogle Spreadsheetで利用する方法を解説!暮らしのコツ

Microsoftが自社の検索プラットフォーム Bingに採用したことを公表し、
Google社の検索プラットフォームの優位性を揺るがせた、最新のAIチャットボット「ChatGPT」。

皆さんは、試してみたことはありますか?

過去のChatGPTに関する記事はこちら:

ChatGPTで質問をすると、対話型で回答をもらえるため非常に便利だったのですが、
例えばまとめて質問をしたい時などには不便性を感じる場面もありました。

それを解決するのが、Google SpreadsheetをChatGPTに連携させることです!
Google Spreadsheet を使うと、
複数の依頼を同時にこなすことができ、
効率が格段に向上します。

以下の記事を参考にセットアップしたところ、簡単に使えるようになりました。

【永久保存版】ChatGPT と Google Spreadsheet を連携した自動リサーチツール作成マニュアル※テンプレコード付き|Keiichi Tsuzaki
※厳密にはChatGPTを開発したOpen AIのAPIを活用しております。 1.ご挨拶 SEIMEI株式会社及び経営者保険ホールディングス株式会社代表取締役の津崎です。 1.1 ツイートの紹介 2023年1月24日に私が投稿した、360万インプレッションを獲得した 『ChatGPT』×『スプレッド...

この記事では、便利なChatGPTを
Google Spreadsheetで使える方法
を、
Spreadsheet側での設定方法、使ってみた感想を含め、ご紹介していきます。

[quads id=1]

事前準備

ChatGPTをSpreadsheetで使用するには、開発したOpenAIのAPIが必要です。

APIとは、Application Programming Interfaceの略称で、
ソフトウェアやアプリケーションなどの一部を外部に向けて公開することにより、
別のソフトウェアと機能を共有できるようにしてくれる機能です。

OpenAIのAPIを取得し、Spreadsheet上で使えるように設定していきます。

まずは、OpenAIのAPIを取得するため、OpenAIのサイトに行きます。

OpenAIのアカウント作成

まず、以下のリンクからOpenAIに登録します。

Product
Our API platform offers our latest models and guides for safety best practices.

Googleアカウント or Microsoftアカウントでも登録可能ですので、
メールアドレス・パスワードの新規登録が手間だと感じた場合はそちらから登録ください。
(私はGoogleアカウントから入っています!)

OpenAI の APIキー取得

続いては、「GPT-3」などOpenAIのサービスを利用する為に、
OpenAIの API Key を取得していきます。

ログイン後、右上の個人アイコンをクリック、
「View API」を押します。

表示されたページにある、
“Create New Secret Key”をクリックすると、
APIキーが自動で生成されます。

セキュリティの観点から、再び閲覧することはできません
別のドキュメントにコピペをし、保存しておくことを推奨します。
(※シークレットキーを紛失した場合は、新しいキーを生成する必要があります。)

Google Spreadsheetでの連携

Google Spreadsheetに連携するためには、
一工夫必要で、
Google Apps Scriptという開発ツールでコードを書く必要があります。

と言っても、一から書く必要はないです!
私も、冒頭にご紹介したリンクを参照に、
ほぼコピペで対応できましたので、
その方法をお伝えします。

Google Apps Scriptへのコード入力

新規または既存のGoogle Spreadsheet
ドキュメントを開いて、”拡張機能” メニューを
クリックし、”Apps Script” を選択します。

画像

function myFunction() {} と書かれた、
デフォルトページに飛びます。

画像

以下のコードが、
GPT-3関数を活用する為のコードとなります。
以下を、先ほどのページにコピーしてください。

/**
* GPT-3 and Google Sheets
*
* @param {string} prompt Prompt.
* @param {number} temperature (Optional) Temperature.
* @param {string} model (Optional) GPT-3 Model.
* @return Response returned by GPT-3.
* @customfunction
*/

const SECRET_KEY = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
(↑"xxxxx"の間に、先ほど取得したAPIキーを入れましょう!)(この行は転記不要です)
//const MAX_TOKENS = 10;
const MODEL_NAME = "text-davinci-003"; // more structured and deterministic: for data
//const MODEL_NAME = "davinci"; // more flexible and creative: for stories, chatbots
const MODEL_TEMP = 0.3;

function GPT(prompt,max_tokens=30) {
const url = "https://api.openai.com/v1/completions";
const payload = {
model: MODEL_NAME,
prompt: prompt,
temperature: MODEL_TEMP,
//max_tokens: MAX_TOKENS,
max_tokens: max_tokens
};

const options = {
contentType: "application/json",
headers: { Authorization: "Bearer " + SECRET_KEY },
payload: JSON.stringify(payload),
};

const res = JSON.parse(UrlFetchApp.fetch(url, options).getContentText());
return res.choices[0].text.trim();
}

(参考サイト:https://lifearchitect.ai/sheets/

コードの認証

転記したコードを作動させるために、認証作業を行う必要があります。
ツールバーにある「実行」ボタンを押します。

「承認が必要です」というメッセージが出てきますので、「権限を確認」ボタンを押します。

画像

アクセス権限を付与するGoogleアカウントを選択し、
その後表示される画面の左下にある「詳細」を押します。

画像

「このアプリはGoogleで確認されていません」という表示が出るので、
一番下にある「安全ではないページに移動」
をクリック。

これだけ脅されるとビビってしまいますが、
上記コード青文字で記載したURLを経由して、
Googleにとっては他社であるOpenAIを使うということだけなので、大丈夫かと。

最後に、「xxxxxxがGoogleアカウントへのアクセスをリクエストしています」と
表示されるので、「許可」をクリック。

貼り付けたスクリプトコードに問題がなければ、
Google Spreadsheetで、関数GPT() が使える様になっているはずです。

GPT関数を用いて ChatGPTに色々聞いてみよう!

GPT関数は、以下の通りとなっています。

GPT(“生成する文章の内容”,[オプション:Maxの文字数])

ここで、“生成する文章の内容”というのは、質問内容を指しています。
[オプション: Maxの文字数] は、デフォルトで 30文字になっていますが、自由に変更できます。(尚、私の場合は1,000文字以上だとエラーが出てしまいます、、)

例えば、こんな感じですね。

私の場合は、 GPT (“B列に記載の内容” の “5行目に記載の項目” を答えてください)
と設定を行うことで、B列に記載の国ごとに、首都・国土面積・人口に関する情報を
簡単に得ることができました。

具体的には、C6セルであれば、
=if (isblank($B6), , GPT($B6 & “の” & C$5 & “を簡潔に答えてください”))

と入力し、B6セル:スペイン、C5セル:首都 が代入された、

「スペイン」の「首都」を簡潔に答えてください

という質問をGPTに送っています。

(ドイツの美味しい料理、
 回答が随分適当ですが、、笑)

ただし、内容の正確性には注意が必要です。

上記のように、国土面積・有名な食べ物など、
長期にわたって変化しない事柄であれば
高い正答率で答えてくれます。

一方、以下の例のように、株価や直近売上高、配当額を聞くと、間違った答えもありました
(双日の一株年間配当額は2,500円ではなく、
正しくは一株あたり年間130円です)

また、(おそらく)学習時点の2020年時点のデータしか返ってきていないのが見て取れます。
これは質問を大雑把にではなく具体的に書くことで回避できるかもしれません。

(そして最近はアクセス集中のためか、時折ERROR!を吐き出します、、)

まとめ

いかがでしたでしょうか。

ChatGPT上で質問のキャッチボールをすることでも十分に便利ですが、
例えば複数の対象に対して同じ内容で質問をしたいときには、Spreadsheetを活用して数式だけコピー&ペーストすれば、
数秒で解答が得られてしまいます。

是非、SpreadsheetとOpenAIの連携を活用して、この便利さを味わってみてください。

タイトルとURLをコピーしました