本記事では、ChatGPT(GPT-3)を活用してスプレッドシートに各種のテキスト入力をする方法を解説します。
本記事を読むことで、例えば以下のような疑問を解決できます。
本記事でわかること
- ChatGPTとスプレッドシートの具体的な連携方法は?
- ChatGPT利用するための関数は?
- スプレッドシートの関数の意味を知りたい
ChatGPTの解説については「ChatGPTとは?ChatGPTの始め方や具体的な使い方を解説」を参照ください。
ChatGPTとスプレッドシート連携するための主なタスク
ChatGPT(GPT-3)とスプレッドシートを連携するための主なタスクは以下の通りです。最初にOpen AI側でいくつか設定を行い、その後はスプレッドシート側で設定対応を行います。
- Open AIでの対応 – Open AIのアカウントを作成する
- Open AIでの対応 – APIキーを取得する
- スプレッドシートでの対応 – Google Apps Scriptにてスクリプトを作成する
- スプレッドシートでの対応 – 関数をスプレッドシート上で利用する
1. Open AIのアカウントを作成する
ChatGPTを利用するためには運営者であるOpen AIのアカウント作成が必要となります。具体的な作成方法を知りたい方は「ChatGPTとは?ChatGPTの始め方や具体的な使い方を解説」をご参照ください。目次から「ChatGPTの始め方」を選択いただくとピンポイントで確認が可能となります。
2. Open AIにてAPIキーを取得する
Open AIのアカウント作成が完了したら、続いてAPIキーを取得します。所要時間は30秒もかかりません。
Open AIのマイページ左側のメニュー「API Keys」を選択します。「+ Create New secret key」ボタンを選択して、新たにAPI Keyを作成します。
わずか数秒でAPIキーが生成されます。APIキーは「sk-****」という文字列になります。誤ってページを閉じないように一番最初にキーをコピーしましょう。
以上で、APIキーの生成は完了しました。
3. Google Apps Scriptにて「GPT-3」のスクリプトを作成する
ここからはスプレッドシート側の対応になります。先ず任意のスプレッドシートを新規作成します。
ここからの流れとしてはGoogle App Scriptの設定を行い、でChatGPTのベースのモデルであるGPT-3を呼び出すためのスクリプトを作成します。
ツールバー「拡張機能」から「App Script」を選択します。
Google App Script(GAS)の画面が表示されます。
デフォルトで記載されている次のスクリプトは削除します。
function myFunction() {
}
デフォルト記載のスクリプトを削除したら、以下のスクリプトをペーストします。「ここに先ほどのAPIキーを入力」と記載されている箇所に、先ほどOpen AIの管理画面で取得したsk-ではじまるAPIキーを貼り付けます。
/**
* 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 = “ここに先ほどの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();
}
入力が完了したら赤矢印のフローピーディスクボタンで「プロジェクトを保存」します。
続いて、スクリプトを実行します。
「承認が必要です」というモーダルが表示されますので「権限を承認」をクリックします。
するとアカウント連携画面が表示されますので、各種設定を進めて「許可」を押します。
承認が完了したら画面が切り替わります。実行ログが「実行完了」となっていることを確認できます。
以上でGoogle Apps Scriptの設定は完了です。このステップで準備段階は終了となります。
4. Googleスプレッドシートで関数を使ってみる
ここからは最終ステップです。スプレッドシート上での具体的な関数利用を行います。
ミニマムの関数は以下の形式となります。
もう少し実用的なスタイルでご説明すると以下が基本的な入力イメージとなります。
具体的なシーンで解説をします。図のようにA列の対象についてB列でその定義を調べたい場合を解説します。
具体的に、A2セルの「AI」についてB2セルにて200文字程度でその定義を調べたい場合を想定します。
B2セルに入れる関数は以下の通りです。
解説
- 関数は、=GPT(【調べたいもののセル】&”指示文”, トークン数)というスタイルになります。指示文は具体的な方が良いので「とは何か200文字以内で説明してください」という内容にしました。
上記のトークン数について少し補足をします。
関数を入力すると即座に以下のような回答が返ってきました。期待通りの回答です。
AI(人工知能)とは、コンピューターや機械が人間のような思考や行動を可能にする技術のことです。AIは、複雑なタスクを効率的に処理するために、膨大な量のデータを処理して、人間のような知的な行動を行うことができます。AIは、自動運転、音声認識、画像認識など、さまざまな分野で使用されています。
同様に「ChatGPT」や「りんご」についても調べてみました。あっという間に以下の表が埋まりました。
関数のルールをベースにすると以下のようなカスタマイズも可能です。
箇条書きで説明する
ポイントを箇条書きで記載したい場合、以下のような指示文にすることも可能です。
すると、即座に以下のような回答となりました。意図通り箇条書きでポイントを列挙した回答となっています。
このように指示文を調整することで様々なバリエーションを作ることができます。
関数利用上はいくつかの留意点がありますので念のため記載します。
関数利用上の留意点
- 他のセルを削除/追加すると再度読み込みが発生するので、調査が完了したセルは値貼り付けにする方が推奨。
- 常に読み込みがかかるのを防ぐためにISBLANK関数と掛け合わせた利用もおすすめです。(例)=IF(ISBLANK(【対象セル】),, GPT(【対象セル】&”の概要を400文字程度で要約してください”,500))
GPT-3のスプレッドシート利用の注意点
明確な注意点が1点あります。それは関数の回答が全て正確なわけではないということです。明らかに使えない回答も多いです。あくまで筆者の感覚値ですが、「普遍的な内容」については意図した回答が戻ってくる一方で、「最新の内容」では精度が低い印象があります。
現時点では人による最終チェックが必要不可欠ですが、精度が改善されるのも時間の問題かもしれません。
おわりに
本記事ではChatGPT(GPT3)とスプレッドシート関数を利用する方法について、準備から具体的なやり方まで解説をいたしました。使い方によっては普段の仕事を劇的に効率化できる点がおわかりいただけたと思います。本記事を参考に試してみてください!