技術ブログ

GASとChatGPT API連携!最新AIを業務自動化に活用

/ 初心者向け

GASとChatGPT API連携!最新AIを業務自動化に活用

GASとChatGPT API連携!業務自動化の新たな扉を開く

皆さんは、Google Apps Script (GAS) を使って、日々の定型業務を自動化していますか?GASはGoogle Workspaceの各種サービス(Gmail, スプレッドシート, ドキュメントなど)を連携させ、業務効率を劇的に向上させる強力なツールです。そこに、近年目覚ましい発展を遂げているChatGPT APIが加わると、その可能性は無限大に広がります。

この記事では、GASとChatGPT APIを連携させる方法を、初心者の方にも分かりやすく解説します。具体的なコード例を交えながら、どのようにして最新AIの能力をGASから引き出すのか、そしてそれをどのように業務自動化に活かせるのかを見ていきましょう。

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

GAS単体でも多くの自動化が可能ですが、ChatGPT APIと連携することで、以下のような高度な機能を実現できるようになります。

  • 文章生成・要約: メール文の自動作成、議事録の要約、ブログ記事のアイデア出しなど。
  • 翻訳: 多言語でのメール対応やドキュメントの翻訳。
  • 質疑応答: ドキュメントの内容に基づいたFAQボットの作成。
  • データ分析・洞察: テキストデータから傾向やパターンを抽出。
  • コード生成: GASのコード生成補助。

これらの機能は、これまで手作業で行っていたり、専門知識が必要だったりした作業を、AIの力で大幅に効率化できる可能性を秘めています。

準備するもの

1. Googleアカウント: GASを利用するために必須です。

2. OpenAIアカウント: ChatGPT APIを利用するために必要です。APIキーの発行が必要です。

3. ChatGPT APIキー: OpenAIのプラットフォームで発行されたAPIキー。

GASからChatGPT APIを呼び出す方法

GASから外部APIを呼び出すには、主に UrlFetchApp サービスを使用します。ChatGPT APIはHTTP POSTリクエストでデータを送信するため、その形式に沿ってリクエストを構築します。

1. APIキーの設定

APIキーは、コードに直接書き込まず、スクリプトプロパティに保存するのが安全です。

1. GASエディタを開き、「プロジェクトの設定」を選択します。

2. 「スクリプトのデプロイ」セクションに「スクリプトプロパティ」という項目があります(ない場合は、左側のメニューにある「プロジェクトの設定」アイコンからアクセスできる場合もあります)。

3. 「キー」に OPENAI_API_KEY、「値」に取得したAPIキーを入力し、「プロパティを追加」をクリックします。

2.GASコード例

ここでは、簡単なテキストをChatGPTに送信し、その応答を取得するスクリプト例を示します。

function askChatGPT() {
  const apiKey = PropertiesService.getScriptProperties().getProperty('OPENAI_API_KEY');
  const apiUrl = 'https://api.openai.com/v1/chat/completions'; // ChatGPT APIのエンドポイント

  const prompt = 'AIについて3行で説明してください。'; // ChatGPTに投げかける質問

  const requestBody = {
    model: 'gpt-3.5-turbo', // 使用するモデルを指定
    messages: [
      { role: 'system', content: 'あなたは役立つアシスタントです。' },
      { role: 'user', content: prompt }
    ],
    max_tokens: 150, // 生成する最大トークン数
    temperature: 0.7 // 生成のランダム性 (0.0~2.0)
  };

  const options = {
    method: 'post',
    contentType: 'application/json',
    headers: {
      'Authorization': 'Bearer ' + apiKey
    },
    payload: JSON.stringify(requestBody)
  };

  try {
    const response = UrlFetchApp.fetch(apiUrl, options);
    const responseData = JSON.parse(response.getContentText());

    if (responseData.choices && responseData.choices.length > 0) {
      const aiResponse = responseData.choices[0].message.content;
      Logger.log('ChatGPTからの応答: ' + aiResponse);
      return aiResponse; // 応答を返す
    } else {
      Logger.log('ChatGPTからの応答がありませんでした。');
      return '応答がありませんでした。';
    }
  } catch (e) {
    Logger.log('エラーが発生しました: ' + e.toString());
    return 'エラーが発生しました。';
  }
}

コードの解説:

  • PropertiesService.getScriptProperties().getProperty('OPENAI_API_KEY'): スクリプトプロパティからAPIキーを取得します。
  • apiUrl: ChatGPT APIのエンドポイントを指定します。
  • prompt: ChatGPTに渡したい指示や質問です。
  • requestBody: APIに送信するデータ本体です。modelmessagessystemロールとuserロール)、max_tokenstemperatureなどを設定します。
  • options: UrlFetchAppでHTTPリクエストを行う際の各種設定です。methodcontentTypeheaders(APIキーを含める)などを指定します。
  • UrlFetchApp.fetch(): 指定したURLにHTTPリクエストを送信します。
  • JSON.parse(): 受信したJSON形式のレスポンスをJavaScriptオブジェクトに変換します。
  • responseData.choices[0].message.content: ChatGPTからの応答テキストを取得します。

3. スプレッドシートからGASを呼び出す

このGAS関数をスプレッドシートから呼び出すことで、さらに便利になります。

1. GASエディタで、新しい関数を作成します。

    function callChatGPTFromSheet() {
      const inputText = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange('A1').getValue(); // A1セルの値を取得
      if (inputText) {
        const result = askChatGPT(inputText); // askChatGPT関数にA1セルの値を渡す (※askChatGPT関数の引数を変更した場合)
        SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange('B1').setValue(result); // B1セルに結果を表示
      }
    }

2. GASエディタのメニューから「実行」→「callChatGPTFromSheet」を選択して実行します。

3. スプレッドシートのA1セルに質問を入力し、B1セルに回答が表示されることを確認してください。(※上記のaskChatGPT関数の引数変更を想定したコードです。必要に応じてaskChatGPT関数も修正してください。)

応用例

  • メールの自動作成:Gmailから件名と本文のテンプレートを取得し、ChatGPTに内容を生成させてメールを送信。
  • 議事録の自動要約: Googleドキュメントに記載された議事録を読み込み、ChatGPTで要約を作成し、スプレッドシートに記録。
  • 顧客からの問い合わせ対応: 問い合わせ内容を解析し、FAQに基づいて回答を生成、あるいは担当者へ振り分け。

まとめ

GASとChatGPT APIを連携させることで、これまでにないレベルでの業務自動化が可能になります。今回ご紹介した内容は基本的な連携方法ですが、これを基盤として、皆さんの業務に合わせた様々な応用が考えられます。ぜひ、この機会にGASとChatGPT APIの連携に挑戦し、日々の業務をよりスマートに進めてみてください!

AIの進化は目覚ましく、GASとの連携はその強力な力を私たちの手元にもたらしてくれます。あなたの業務効率化のアイデアを、ぜひ形にしてみてください。

GAS自動化の導入相談

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

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