Google Apps ScriptでChatGPT APIを利用する

Google Apps ScriptでChatGPT APIを利用する

2023/12/09

2023/12/09

Google Apps ScriptでChatGPT APIを利用する方法です。

前提条件

・ChatGPTのAPIキーを持っていること

Googleスプレッドシート

Googleスプレッドシートで以下のように、以下の目的で4つのセルを準備します。
・モデル
・プロンプト
・入力する文章(今回は「用語」としています)
・出力される回答


関数の記述

メニューの拡張機能 > Apps Scriptを選択し、
以下のソースを貼り付けます。

const apikey = PropertiesService.getScriptProperties().getProperty('OPENAI_API_KEY');;
// const model = "gpt-3.5-turbo";
// const model = "gpt-4";
const temperature = 0.5;
const url = "https://api.openai.com/v1/chat/completions";

function GPT(model, content, maxTokens=2048) {
  if(content){
    const requestBody = {
      "model": model,
      "messages": [{'role': 'user', 'content': content}],
      "temperature": temperature,
      "max_tokens": maxTokens
    };

    const requestOptions = {
      "method": "POST",
      "headers": {
        "Content-Type": "application/json",
        "Authorization": "Bearer " + apikey
      },
      "payload": JSON.stringify(requestBody)
    };

    const response = JSON.parse(UrlFetchApp.fetch(url, requestOptions).getContentText());

    return response.choices[0].message.content.trim();

  } else {
    return "no result";
  }
}


スクリプトプロパティの設定

ソース内で使用するAPIキーをスクリプトプロパティに設定します。
Apps Scriptの設定 >「スクリプトプロパティ」を選択し、以下を入力して保存します。
プロパティ:OPENAI_API_KEY
値    :自分が持っているOPEN AIのAPIキー


作成した関数の利用

上記で作成した関数(GPT())はセルの中で利用可能です。
B4のセルに以下のような関数を入れて利用します。
「A4に何か入力されていたら、入力された内容に基づいてChatGPT APIを呼び出して回答をB4に出力する」といった内容です。
※関数の引数として、第一引数に"モデル"、第二引数に"固定のプロンプト+入力された用語"としています。

=if(A4<>"",GPT(B1,B2&A4),"")


実際の動き



参考資料

OpenAI API