Gemini Proを使えるスプレッドシートのカスタム関数の導入方法【コピペOK】
Googleが2023年12月に発表した次世代AIのGeminiは、3種類のうち中位モデルであるGemini ProがAPIで現在利用可能です。
そこでGemini APIを利用してGemini Proの応答が得られるスプレッドシートのカスタム関数として自作する方法を解説します。
※Gemini APIを用意すれば、コピペするだけでGeminiと対話できるスプレ関数が使えます(今ならタダで利用可能です!)
GPT-4/ChatGPTに対抗するGoogleのGemini
Googleは2023年12月に次世代AIモデルであるGeminiを発表しました。
Googleブログによると、Geminiの最上位モデルであるGemini UltraはLLMに関する指標で、OpenAIのGPT-4を超えるスコアを記録したとのことです。
※GoogleのGeminiに関する発表内容は下記の記事でまとめています。
2023年の生成AIはOpenAIのChatGPTとGPT-4が大きな注目を集め、Googleは後塵を拝していました。
そこで、Googleの新たなAIであるGeminiを公開し、2024年に巻き返しを図ろうとしています。
スプレッドシートでGeminiが使えると便利
そんなGeminiはAPIが公開されており、Gemini Proのモデルが利用可能です。
Gemini APIを使えば、色々なツールと連携してGeminiを使うことができます。
Geminiを使えると便利なツール・サービスの1つがスプレッドシートです。
ChatGPTでもスプレッドシートで利用できるアドオンやカスタム関数を多くのユーザーが使っています。
スプレッドシートからGeminiに質問をしたり、文章を生成したり、表計算の数値について分析してもらえると業務改善に繋がります。
Gemini APIでスプレのカスタム関数が自作可能
実はGemini APIを利用すれば、スプレッドシートでGemini Proを利用できるカスタム関数を作成することができます。
スプレッドシートの拡張機能であるGoogle Apps Script(GAS)で、Gemini APIをリクエストするカスタム関数のスクリプトを記述します。
すると、スプレッドシートの関数のような使い方でGemini APIにプロンプトを投稿し、応答を得られる関数が利用可能です。
コピペですぐ使えるスプレGemini関数を公開
ただ、Gemini APIにリクエストし、GoogleのGemini Proと対話するGoogle Apps Scriptのコードを書くのは、詳しくない人には大変です。
そこで、Gemini APIを使い、Gemini Proからの応答が得られるスプレッドシートのカスタム関数を作成しました。
自作したスプレッドシートのGemini関数は、以下で解説する手順に従えば、誰でも導入可能です。
スプレッドシートからGeminiと対話するカスタム関数のコードをコピペするだけなので、約3分で設定できます。
さらに2024年初頭までGemini APIが期間限定無料なので、タダでGemini関数を使えるのもうれしいです。
実際にスプレッドシートで自作したGemini関数の設定手順を解説します。
事前準備:Gemini APIキーを用意
事前準備として、Gemini APIを利用するので、APIキーを用意します。
Gemini APIのKeyはGoogleアカウントさえあれば発行可能です。
Google AI StudioのGemini APIのページにアクセスし、Get API keyから作成します。
※下記のYoutube動画でGemini APIキーを生成するやり方を詳しく解説しています。
Gemini Proを使うスプレのカスタム関数の設定
Gemini APIのキーが準備できれば、スプレッドシートのカスタム関数の導入設定を行います。
1.Geminiのスプレ関数を導入したいスプレッドシートを開き、メニューバーにある「拡張機能>Apps Script」を選択します。
2.Apps Scriptのエディタが開かれるので、左メニューにある「プロジェクトの設定」を選択します。
3.「プロジェクトの設定」画面をスクロールすると「スクリプトプロパティ」が表示されるので、以下のようにプロパティと値を追加します。
- プロパティ:APIKEY
- 値:(事前準備したGemini APIのキー)
4.再びエディタに戻り、表示されたmyFunctionのコードをすべて削除し、以下のカスタム関数「GEMINIPRO」のコードをコピペし、Ctrl +Sで保存します。
/**
* GeminiProにリクエスト
* @param {'質問文'} prompt GeminiProへのプロンプト
* @customfunction
*/
function GEMINIPRO(prompt) {
//スクリプトプロパティからAPIキーを取得
const apiKey = PropertiesService.getScriptProperties().getProperty('APIKEY');
//GeminiのAPIのエンドポイントURLを設定
const apiUrl = `https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent?key=${apiKey}`;
//プロンプトに加え、Gemini APIリクエストに必要なペイロードを設定
const payload = {
"contents": [
{"role": "user","parts": { "text": prompt }}
],
};
//payloadやHTTP通信種別、認証情報をoptionで設定
const options = {
'payload': JSON.stringify(payload),
'method' : 'POST',
'muteHttpExceptions': true,
'contentType':'application/json'
};
//Gemini APIにAPIリクエストを送り、結果を変数に格納
const response = JSON.parse(UrlFetchApp.fetch(apiUrl, options).getContentText());
return response.candidates[0].content.parts[0].text;
}
以上の4StepでスプレッドシートのGemini Proと対話するカスタム関数のセットアップが完了です。
スプレッドシートのセルから「GEMINIPRO関数」が利用できるようになります。
スプレッドシート関数のようにGeminiと対話
スプレッドシートにGEMINIPRO関数が導入できたら、実際にGemini Proにプロンプトを送って応答を得てみます。
通常のスプレッドシートの関数と同じように、「=」を入力し、GEMINIと打ち込むと、GEMINIPRO関数がサジェストされます。
GEMINIPRO関数は引数にGemini Proに投稿するプロンプトを指定します。
日本一大きい湖をGemini Proに質問したところ、「琵琶湖」と正しく回答してくれました。
こうした単語レベルの回答だけではなく、GEMINIPRO関数は長文応答も取得できます。
生成AIの業務改善事例について尋ねると、6つの事例を教えてくれました。
このようにカスタム関数として自作したGEMINIPRO関数を使えば、スプレッドシート上で気軽にGemniProとの対話ができます。
Gemini Proを使うためにBardの画面にわざわざ遷移しなくてもいいので、スプレッドシートで作業中に質問するといった使い方も可能です。
まとめ・終わりに
今回、スプレッドシートでGemini Proとのチャットができるカスタム関数の設定手順を紹介しました。
Googleの肝いりである次世代AIのGeminiはAPIが公開されており、Google Apps Scriptでスプレッドシートと連携可能です。
スプレッドシートのカスタム関数として、プロンプトを引数にするとGemini Proからの応答が得られるGEMINIPRO関数が使えます。
Gemini APIのAPIキーさえ用意すれば誰でもコードをコピペするだけで簡単に導入できます。
今ならGemini APIが期間限定で無料なので、ぜひスプレッドシートからもGeminiを活用してみてください。
ディスカッション
コメント一覧
情報ありがとうございます。
ご提示の内容で試してみましたが、gasの実行の際に26行目のところで下記エラーが出て実行できないようですがどのような原因が考えられるでしょうか?
TypeError: Cannot read properties of undefined (reading ‘0’)
当方初心者で申し訳ございませんが、ご助言いただけますと助かります。
>Kou様
ご返信遅くなり申し訳ありません。
いただいたエラーが発生した実行方法ですが、App Scriptのエディタ上で実行されていないでしょうか?
本スクリプトはApp Scriptのエディタにサンプルコードを貼り付け、APIキーを設定後にスプレッドシートのセルに対して「=GEMINIPRO(“質問文”)」を入力して実行します。
もしくはAPIキーの設定が未完了の場合もエラーが生じますので、そちらも併せてご確認いただけますでしょうか。
よろしくお願いいたします。