Google Apps ScriptでGPT APIを活用する方法

GAS

Google Apps ScriptとGPTを組み合わせによる自動処理の幅を広げたいな。
業務の効率化のために、AIの力をつかう新しい方法を覚えたい。
具体的な応用ではなく、シンプルに基本的な構造を知りたいな。

自然言語処理の分野で話題のGPTをGoogle Apps Scriptと組み合わせると、Googleドキュメントとの連携が容易になり、業務の効率化が期待できます。

GPTのAPIをスプレッドシートから呼び出す基本的な使い方を知ることで、APIを使用するプログラムの流れが明確に理解できるようになります。この基本的なアプローチの紹介が、これからGPTとGoogle Apps Scriptを使い始める方々の参考になれば幸いです。

本記事の内容

今回の仕組みについて説明します
今回のサンプルプログラム
GASを使用した効率化を進めてみませんか

今回の仕組みについて説明します

今回のプログラムは、スプレッドシートに入力された設定とプロンプトを元に動作し、GPTAPIの結果を出力するシンプルな構造です。先ほど触れたように、様々なGoogleドキュメントとの直接的な連携は行っていません。しかし、APIの基本的な動作を把握することで、さまざまなアイディアが湧き上がってきます。

実行手順は以下のようなものです。

1.スプレッドシートに設定とプロンプト(GPTへの質問)を入力して、GASを実行する。

OPENAI社から取得したAPIキーと、希望するプロンプトを入力した後、上部メニューバーの右端にある「GAS実行>リクエスト送信」をクリックすると、GPTからの回答が表示されます。
サンプルは以下のリンクを参照ください。
皆さんのマイドライブにコピーして動作の確認をお願いします。
function callOpenAI() {
  // 1. 設定シートからプロンプトを取得
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName('設定');

  // OpenAIのAPI設定
  var apiKey       = sheet.getRange('B1').getValue(); // 1.で取得したAPIキーを入力
  var endpoint     = sheet.getRange('B2').getValue(); // GPT-3.5のチャットエンドポイント
  var promptCell   = sheet.getRange('B3').getValue(); // プロンプトを入力するセル
  var responsCell  = sheet.getRange('B4').getValue(); // 回答を記載するセル
  var promptText   = sheet.getRange(promptCell).getValue(); // プロンプト文字列

  // OpenAIのAPI(リクエスト内容)
  var payload = {
    'model': 'gpt-3.5-turbo', // モデルパラメータを追加    
    'messages': [
      {
        'role': 'user',
        'content': promptText
      }
    ]
  };
  var options = {
    'method' : 'post',
    'headers' : {
      'Authorization': 'Bearer ' + apiKey,
      'Content-Type': 'application/json'
    },
    'payload' : JSON.stringify(payload),
    'muteHttpExceptions': true
  };

  // 2. APIを呼び出し、応答を取得
  var response = UrlFetchApp.fetch(endpoint, options);
  var jsonResponse = JSON.parse(response.getContentText());

  // APIの応答をログに出力
  Logger.log(jsonResponse);

  // 3. 応答を設定シートのセルB3に記載
  if (jsonResponse.choices && jsonResponse.choices[0] && jsonResponse.choices[0].message) {
    var assistantResponse = jsonResponse.choices[0].message.content;
    sheet.getRange(responsCell).setValue(assistantResponse);
  } else {
    sheet.getRange(responsCell).setValue("APIからの応答が不正です。");
  }
}

GASを使用した効率化を進めてみませんか

今回は単純なAPIの呼び出しですが、Google Apps ScriptとGPT APIを組み合わせることで、テキスト生成や質問応答などの高度な自然言語処理作業を簡単に自動化することができます。例えば、FAQの自動応答や文章の自動生成など、多岐にわたるアプリケーションの開発が可能になります。少しずつですが、始めていきましょう。
今回は以上です。

コメント