見出し画像

【永久保存版】ChatGPT と Google Spreadsheet を連携した自動リサーチツール作成マニュアル※テンプレコード付き

※厳密にはChatGPTを開発したOpen AIのAPIを活用しております。

1.ご挨拶


SEIMEI株式会社及び経営者保険ホールディングス株式会社代表取締役の津崎です。


1.1 ツイートの紹介


2023年1月24日に私が投稿した、360万インプレッションを獲得した
『ChatGPT』×『スプレッドシート』の活用方法に関して解説させて頂きます。

月間2,000万PV以上を誇るITmedia様から取材を受けるなど大バズりしました。

『ChatGPT』×『スプレッドシート』を活用することでリサーチ業務が自動で一瞬で完了します。(まだ精度の改良の余地はありますが)

サンプル動画はこちらです。


1.2 GPT-3関数とは


最初に断りを入れておきますが、今回はChatGPTを直接活用しておりません。
(ChatGPTのAPIは解放されておりません。)

ChatGPTを開発しているOpenAIが提供してるこの「ChatGPT」のベースとなっている自然言語処理AI「GPT-3」という技術を今回活用します。

以下に簡単にOpenAI、ChatGPT、GPT-3の違いをまとめております。

🖋用語の解説

OpenAI:
2015年に設立された人工知能を研究する非営利団体のこと。イーロン・マスクらアメリカの起業家や投資家など有力な人物たちが集まり、人工知能オープンソース(無償でソフトウェアのソースコードを公開し、自由に改良できるようにすること)化を推進するのが主な目的。

ChatGPT
OpenAIのテキスト生成AIプラットフォームシリーズ、GPT(Generative Pre-Trained Transformer)の最新モデル要はOpenAIのサービスがChatGPTです。今回はOpen AIのAPIを活用してるので、厳密にはChatGPTではありません。ChatGPTはまだAPIを解放していないです。


GPT-3(Generative Pre-trained Transformer 3):
OpenAIが開発した自然言語処理(NLP)のためのプレトレーニング済みの機械学習モデルです。GPT-3は、膨大なテキストデータを使用して訓練され、自然言語処理タスクを自動的に実行することができます。GPT-3は、自然言語処理タスクを実行するための膨大なデータセットを必要とせず、自然言語処理タスクを実行するための膨大なコンピュータリソースも必要としません。

1.3 作業工程


続いては、作業工程について簡単に説明します。

★GoogleSpreadsheet「GPT-3」を使用する手順

①OpenAIのアカウント取得
②OpenAIのAPI Keyを取得
③Google Apps Script(GAS)でのスクリプト作成
④作成したGPT-3の関数をGoogleスプレッドシートに実装

10分あれば簡単に初めての方でも準備ができるくらい簡単な作業です。

2. 事前準備


2.1 OpenAIのアカウント取得

「GPT-3」を使用するには、開発したOpenAIのAPIが必要です。
まず、以下のリンクからOpenAIに登録します。

https://openai.com/api/


アカウント作成の画面が表示されたら、

・メールアドレスを入力
・「I’m not a robot」にチェックを入れる
・「Continue」をクリック
・パスワードの入力
・使用目的など簡単な質問に答える

以上でアカウントを作成できます。
他にもGoogleアカウント or Microsoftアカウントでも登録可能です。

2.2 OpenAIのAPI Keyを取得


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

以下のリンクから添付の画面ページに移行できます。
"create new secret key"をクリックすると自動で生成されます。


https://beta.openai.com/account/api-keys




取得済みのAPI Key(シークレットキー)は、前後数文字だけ表示されます。

セキュリティの観点から、再び閲覧することはできませんので、別で保存しておくことを推奨します。

※シークレットキーを紛失した場合は、新しいキーを生成する必要があります。

3. GASでスクリプト作成


🖋一言メモ

Google Apps Script(GAS)とは?


ひとことで言えばGoogleが提供する各種サービスの自動化/連携を行うためのローコード開発ツールです。GASを使うと、Gmailやカレンダー、Googleスプレッドシート、Googleドライブなど、Googleが提供する様々なサービス上で処理を自動化したり、複数のサービスを連携させたりできます。

https://satori.marketing/marketing-blog/gas-introduction/

GoogleSpreadsheetにGASを書いて、GPT-3関数を使えるようにしていきます。


3.1 Apps Script を展開


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

まだコードが書かれていないページが出てきます。


3.2 GASにコードを添付


こちらが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";
//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/

3.3 コードの解説

const MODEL_NAME = "text-davinci-003";

GPT-3は、主に4つの機械学習モデルを提供しており、それぞれのタスクに適した性能の違いがあります。

Davinciは最も高性能なモデル、対して、Adaは最も高速なモデルです。

🖋モデル説明

text-davinci-003
GPT-3の中で最も高性能なモデルです。他のモデルで可能なあらゆるタスクが可能で、多くの場合、より高い品質、長い出力、より良い命令追従性が得られます。
また、テキストに補完記号を挿入することも可能です。

text-curie-001
非常に高機能だが、Davinciより高速で低価格。

text-babbage-001
素直な作業が可能で、非常に速く、低コスト。

text-ada-001
非常にシンプルな作業が可能で、通常GPT-3シリーズの中で最も高速なモデルであり、最も低価格。


🇯🇵日本語訳
複数のモデルで、それぞれ性能と価格帯が異なる。Adaは最速のモデル、Davinciは最もパワフルなモデルです。

価格は1,000トークンあたりです。トークンは言葉の断片と考えることができ、1,000トークンは約750ワードに相当します。この段落は35トークンです。

//const MAX_TOKENS = 10;
.
.
.


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
};

[max_tokens]

生成される文章の文字数(正確にはトークン数)の上限を、関数の引数で指定できる様にアレンジしました。デフォルト値は30です。

3.4 シークレットキーの添付

スクリプトコード内の「SECRET_KEY」に、OpenAIのHPで取得したAPI Key(シークレットキー)を入力します。

const SECRET_KEY = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx";


3.5 認証作業


スクリプトを作動させるために、認証作業を行う必要があります。
手順は以下の通りです。

①プロジェクトを保存


②実行を選択


③権限を確認

④アカウントを選択

⑤詳細を選択

⑥安全ではないページに移動

⑦許可を選択

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

4.GPT-3関数の実装


続いては、GPT-3の関数をGooglespreadsheetに実装していきます。


4.1 サンプルの提示

まずはサンプルを提示します。


4.2 GPT関数の説明

🖋GPT関数の説明

GPT(“生成する文章の内容”,[オプション:MAXの文字数(正確にはトークン数)])

具体的に関数を書くと下記の通りです。

=GPT($A2&"の"&B$1&"を簡潔に教えてください:",1000)

▶︎最後の1000は文字数でここは任意に変えても大丈夫です。

“生成する文章の内容”で自由に指示を変えることができます。

色々私が試した中で、『簡潔に教えてください』がベストでした。

4.3 GPT関数の使い方


XXを教えてくださいのXXの部分をセルで指定することで、関数を毎回変更することなく、コピペで無限に情報を提示させることができます。

例えば、A列と1の行でそれぞれ情報を2つ記載すれば

○○のXXはなんですか?

という情報を返すことができます。

『A2=TOYOTA』の『B1=URL』の答えをB2で返すことができます。

絶対参照の$も付けてるので、B2の関数をコピーするだけで他のセルの関数も勝手に設定されます。(毎回変更する必要無し)

❓エクセルの絶対参照とは?
・コピーしても$のあとの文字が固定されることです。詳細は以下のリンクを参照。
https://udemy.benesse.co.jp/business/office/absolute-reference.html

また、ISBLANK関数は空白だったら、XXという指示を出せます。

上記の場合で言うとA2が空白の場合は" " と空白を返すようにしております。

目的はA列に文字がなくてもエラーが出ないようにする為です。

以下の画像のようにA列に文字がないと変な回答をしてしまいます。

詳しくはこちらを確認


関数があまり得意でない方は、GPT関数を実装後、上記のスプレッドシートのページ自体をコピーいただければそのまま行列を変更するだけで活用できます。


5. 最後に


ここまでご覧いただきありがとうございました。

まだ、日本語の精度はイマイチではありますが、リサーチ業務が完全AIに奪取される未来が見えたかと思います。

アドオンを使ってOpenAIを活用する解説記事は多くありますが、このnoteはGASを直接編集する方法を解説しました。

GASを触れて、初めて独自にカスタマイズできて他者と差別化ができます。

引き続き、ChatGPT関連の情報や新たなAI周りの情報を発信していきますので、noteやTwitterをフォローいただけると幸いです。


この記事が気に入ったらサポートをしてみませんか?