技術ブログ

ChatGPT APIとGAS連携:業務効率化の第一歩

/ 初心者向け

ChatGPT APIとGAS連携:業務効率化の第一歩

ChatGPT APIとGASを連携させる方法

最近、AIの進化が目覚ましいですが、中でもChatGPTは多くの人がその能力に驚いています。そんなChatGPTの能力を、Google Apps Script (GAS) を使って、Google Workspaceの様々なサービスと連携させることができたら、私たちの業務はどれだけ効率化されるでしょうか?

このブログ記事では、ChatGPT APIとGASを連携させるための基本的な方法を、初心者の方にも分かりやすく解説します。簡単なコード例を交えながら、その可能性を探っていきましょう。

なぜChatGPT APIとGASを連携させるのか?

GASは、Gmail、Googleスプレッドシート、Googleドキュメントなど、Google Workspaceのサービスを自動化するための強力なツールです。一方、ChatGPT APIは、高度な自然言語処理能力を持っています。この二つを組み合わせることで、以下のようなことが可能になります。

  • メールの自動作成・要約: Gmailに届いたメールの内容を要約したり、返信メールのドラフトを作成したり。
  • スプレッドシートのデータ分析・洞察抽出: スプレッドシートのデータを分析し、ChatGPTに解釈させてレポートを作成。
  • ドキュメントの自動生成・校正: 資料のドラフトを自動生成したり、既存のドキュメントの校正を依頼。
  • FAQボットの作成: 顧客からの問い合わせに対し、ChatGPTが自動で回答。

これらはほんの一例です。アイデア次第で、さらに多くの自動化が実現できます。

連携の準備

連携には、以下のものが必要です。

1. OpenAIのアカウントとAPIキー: OpenAIのウェブサイトでアカウントを作成し、APIキーを取得します。

2. Google Apps Scriptの実行環境: Googleアカウントがあれば、GASはすぐに利用できます。

APIキーの管理

APIキーは機密情報ですので、GASのスクリプトに直接書き込むのは避けましょう。PropertiesService を利用して、スクリプトのプロパティとして安全に管理するのが一般的です。

簡単な連携コード例

ここでは、GoogleスプレッドシートからChatGPTに質問を投げかけ、その回答をスプレッドシートに書き込む簡単な例を見てみましょう。

1. スクリプトエディタの起動

Googleスプレッドシートを開き、「拡張機能」>「Apps Script」を選択してスクリプトエディタを起動します。

2. APIキーの設定

スクリプトエディタの左側にある「プロジェクトの設定」アイコンをクリックし、「スクリプトのプロパティ」タブを開きます。「プロパティを追加」ボタンをクリックし、以下のように設定します。

  • プロパティ名: OPENAI_API_KEY
  • 値: 取得したChatGPTのAPIキー

「スクリプトのプロパティを保存」をクリックします。

3. GASコードの記述

以下のコードをスクリプトエディタに貼り付けます。

function askChatGPT() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  
  // A列に質問、B列に回答を書き込む想定
  var question = sheet.getRange("A2").getValue(); // A2セルの内容を質問として取得
  
  if (!question) {
    Logger.log("質問が入力されていません。");
    return;
  }
  
  var apiKey = PropertiesService.getScriptProperties().getProperty('OPENAI_API_KEY');
  if (!apiKey) {
    Logger.log("APIキーが設定されていません。");
    return;
  }
  
  var apiUrl = "https://api.openai.com/v1/chat/completions";
  
  var requestBody = {
    "model": "gpt-3.5-turbo", // 利用したいモデルを指定
    "messages": [
      {"role": "system", "content": "あなたは親切なアシスタントです。"},
      {"role": "user", "content": question}
    ],
    "max_tokens": 150
  };
  
  var options = {
    "method": "post",
    "contentType": "application/json",
    "headers": {
      "Authorization": "Bearer " + apiKey
    },
    "payload": JSON.stringify(requestBody)
  };
  
  try {
    var response = UrlFetchApp.fetch(apiUrl, options);
    var jsonResponse = JSON.parse(response.getContentText());
    
    if (jsonResponse.choices && jsonResponse.choices.length > 0) {
      var answer = jsonResponse.choices[0].message.content.trim();
      sheet.getRange("B2").setValue(answer); // B2セルに回答を書き込む
      Logger.log("回答: " + answer);
    } else {
      Logger.log("期待される形式で回答が返ってきませんでした。");
      Logger.log(jsonResponse);
    }
    
  } catch (e) {
    Logger.log("エラーが発生しました: " + e.toString());
  }
}

4. 実行と確認

1. GoogleスプレッドシートのA2セルに質問を入力します。(例:「日本の首都はどこですか?」)

2. スクリプトエディタに戻り、askChatGPT 関数を選択して実行ボタン(▶)をクリックします。

3. 初回実行時には、スクリプトの実行に必要な権限の承認を求められます。内容を確認し、承認してください。

4. 実行後、スプレッドシートのB2セルにChatGPTからの回答が表示されれば成功です。

さらなる応用に向けて

この例は非常に基本的なものですが、これを基盤として、さらに多くの応用が考えられます。

  • 複数の質問への一括回答: スプレッドシートのA列に複数の質問を入力し、ループ処理で一括で回答を得る。
  • Gmailとの連携: 受信メールの内容を分析し、要約メールを送信する。
  • トリガーの設定: 特定のタイミング(例:毎日午前9時)やイベント(例:スプレッドシートの更新)でスクリプトを実行する。

まとめ

ChatGPT APIとGASを連携させることで、Google Workspaceでの作業を格段に効率化できます。今回ご紹介した内容は、その第一歩に過ぎません。ぜひ、ご自身の業務に合わせてカスタマイズし、AIの力を活用してみてください。

次回は、より実践的な応用例や、API利用時の注意点などについて掘り下げていきます。お楽しみに!

GAS自動化の導入相談

請求書PDF作成、Gmail自動送信、Slack通知、スプレッドシート連携などを業務に合わせて実装できます。

請求書自動生成ツールを見る / SNS自動投稿ツールを見る