【GPT-4-Turbo】ChatGPTとGoogle Spreadsheetを連携!

みなさん,こんにちは.デイビッドです.生成AIによる自然言語処理技術が最近ものすごいですね.ChatGPTうまく使えていますか?今回は、ChatGPTとGoogle SpreadSheetの連携方法について、少しつまづきながらもやってみましたので,共有します.c

なお,ChatGPTはPlusプランであることが前提です.

OpenAI API Keyの取得

https://platform.openai.com/api-keys

上記にアクセスいただくと,左側のメニューで,

API Keysの項目がありますので,そちらをクリックして,Create new secret keyから発行してください.

このAPI Keyは,ウィンドウを閉じるなどすると,みれなくなるようですので,どこかに保存しておくなどして管理するよう注意してください.

Googleスプレッドシートで設定

Google スプレッドシート: ログイン
Google スプレッドシートには、個人の Google アカウントまたは Google Workspace アカウント(ビジネス ユーザー向け)でアクセスできます。

「GPT for Sheets and Docs」のインストール

以下のように,拡張機能の項目から,アドオン>アドオン取得,とクリックしてください.

そうすると,Google Workspace Marketplaceの画面が出ますので検索欄に「GPT」などといれて,「GPT for Sheets and Docs」をクリック,インストールを進めてください.(以下のスクショではインストール済みとなっているやつですね.)

Screenshot

OpenAI API Keyの設定

「GPT for Sheets and Docs」のインストールが完了したら,先ほどのAPIを設定します.

「拡張機能」のメニューから GPT for Sheets and Docs>Openとしてください.

他の方の記事ではここに「Set API Key」が出る,とありますが,私がやったときは,「Set API Key」が画像のように出ませんでしたので,同じようにやってみてください.
すると,右側にGPT for Sheets and Docsのウィンドウが開きますので,そのウィンドウ内の左上のハンバーガーメニューを押すと

以下のように,API Keysの項目がありますので押してもらうと,
API Keyを入力できる画面になりますので,先ほど取得したKeyをいれちゃってください!
入力できるとこんな感じです.

GPT関数を利用してみる

基本的には,=GPT(“Prompt”)でOKです.が,詳しくは以下.

GPT関数の使い方

構文 =GPT(prompt, [value], [temperature], [model])
パラメータ 定義
prompt

空白はダメ!

生成AIへの指示入力
promptには,以下が使えます:

  • 文字列: "教育系ブログのコンセプトを3つ書いて"
  • セル選択: A1
  • 範囲指定もOK: A1:C3
(optional) value プロンプトに追加で情報を入れたい時用.
(optional) temperature, model temperature は0から1の値. 創造性を調整する用.
modelは,デフォルトは,”gpt-3.5-turbo”なので,”gpt-4-turbo”指定したほうがよい.

さらに詳しく使い方を深めたい場合は,以下のテンプレートを利用するのがおすすめです.

Google Sheets: Sign-in
Access Google Sheets with a personal Google account or Google Workspace account (for business use).

と,ここまで書いてみたものの,実は,このGPT関数経由だと,Browse機能が利用できないなど,機能制限があるため,フルのケイパビリティを使えません.Browse機能の有無はかなりできることの次元が違うので悲しみ・・今後に期待ですね.

直接APIを利用する場合も同様のようです.

Ensuring gpt-4 Model is Used in v1/chat/completions Endpoint for Spreadsheet Integration
Greetings OpenAI community, After successfully integrating the OpenAI API into a Google Spreadsheet application using Apps Script, aimed at autofilling empty c...

ここに書かれているように,カスタムインストラクション指定で,

“Gets top results of web search engine with page descriptions. Use for recent events or news.”と指示してみたもののうまくいかずでした.

GPT4を直接API経由で利用する(Google Apps Script活用)

Spreadsheetで,拡張機能>Apps Scriptと選択すると,新規プロジェクトが開きます.
以下のスクリプトを書いて,デプロイします.
なお,APIKEYは,設定からプロパティを登録できる箇所があるので,そちらで設定しています.
function requestGpt4Completion(prompt) {
  // Get the OpenAI API key set in the Script Properties
  const apiKey = PropertiesService.getScriptProperties().getProperty('APIKEY');
  const customInstructions = PropertiesService.getScriptProperties().getProperty('CUSTOM_INSTRUCTIONS');
  // Set the API endpoint for GPT-4
  const apiUrl = 'https://api.openai.com/v1/chat/completions';
  // Define the message to send to GPT-4 (only user role's post)
  const messages = [{'role': 'system', 'content': ''},
                    {'role': 'user', 'content': prompt}];
  // Set the necessary header information for the OpenAI API request
  const headers = {
    'Authorization': 'Bearer ' + apiKey,
    'Content-type': 'application/json'
  };
  // Set the options for GPT-4 model, token limit, and prompt
  const options = {
    'muteHttpExceptions': true,
    'headers': headers,
    'method': 'POST',
    'payload': JSON.stringify({
      'model': 'gpt-4-turbo',
      'max_tokens': 2048,
      'temperature': 0.7,
      'messages': messages
    })
  };
  // Send the API request to OpenAI's GPT-4 and store the result in a variable
  const response = UrlFetchApp.fetch(apiUrl, options);
  const responseData = JSON.parse(response.getContentText());

  // Check if the response is successful and has the expected data
  if (response.getResponseCode() === 200 && responseData.choices && responseData.choices.length > 0) {
    return responseData.choices[0].message.content;
  } else {
    // Log error or return a default error message
    console.error('Failed to fetch response:', responseData);
    return "Error: Failed to fetch response from API.";
  }
}
APIを利用する場合は,従量課金制になるので,使いすぎを気にしないといけないのが難点ですが,2024年4月から,モデルが更新されており,GPT-4 Turboになっています.(上記スクリプトでもGPT-4 Turbo指定をしてあります.)
GPT-4よりも料金が安くなっているようです!

With 128k context, fresher knowledge and the broadest set of capabilities, GPT-4 Turbo is more powerful than GPT-4 and offered at a lower price.

Model Input Output
gpt-4-turbo-2024-04-09 $10.00 / 1M tokens $30.00 / 1M tokens

まとめ

ChatGPTとGoogle SpreadSheetの連携方法についてご説明しました.日常的なタスクの自動化が可能になっていきますが,意外と日常的に利用している人は少ない気がします.

流行ってるけどよくわからない,ではなく,適応,順応するために,一歩踏み出して,より面白いことに時間が使えるよう,生産性を高めていきたいものですね.

デイビッドもまだまだ試行錯誤の途中です.面白い発見があればまたシェアします

コメント