スプレッドシートのセルの内容を、一括でChatGPTに投げたい場合などに使える、AppScriptになります。
スプレッドシートの拡張機能でも簡単に連携できますが、得体の知れない拡張機能はあまり好きではないので、AppScriptでGPTを呼び出すようにしています。

スポンサーリンク

Chat Playgroundでの事前準備

アカウントの作成とクレジットカートの登録

ChatGPTのAPIを使うためには、openAIのplatformにて、アカウントの作成とクレジットカートの登録をする必要があります。

以下のサイトにアクセスして、アカウントの作成とクレジットカードの登録を行なってください。

https://platform.openai.com/docs/overview

API Keysの作成

サイドバーの「API Keys」をクリックし、「Create New Secret Key」をクリックします。

「Name」の欄に、適当な名前を付けます。
なんでもOKですが、今回はスプレッドシート用なので「spreadsheet」と入れています。

「Create secret key」をクリックすると、以下の画面が表示されます。

ここで表示されるシークレットキーは、今後で使うのでコピーしておきます。
この画面は消してしまうと2度と表示することはできないので、どこかに保存しておきましょう。
(なお、外部に流出すると勝手に使われてしまう可能性があるので、流出しないように取り扱いには注意してください)

クレジットの購入

右上のアカウントのアイコンをクリックして、「Your profile」をクリックします。

「Billing」から、「Add to credit balance」をクリックして、お好みのクレジットを購入します。

以前はクレジットによる前払い制ではなく、使用した分だけ請求という形をとっていました。
(上限を決めることはできました)

しかし、いつからか前払い制に変更されていました。
こちらの方が安心して使用できるので、良い変更だと思います。

スプレッドシートでAppscriptの作成

スプレッドシートにてAppScriptを開き、以下のコードを貼り付けます。

const API_KEY = 'sk-XXXXXXXXXXXXX';  // OpenAI APIキーをここに貼り付けます

function callChatGPT(prompt) {
  const url = 'https://api.openai.com/v1/chat/completions';
  const payload = {
    model: "gpt-3.5-turbo",
    messages: [{role: "user", content: prompt}],
    max_tokens: 100
  };
  
  const options = {
    method: 'post',
    contentType: 'application/json',
    headers: {
      'Authorization': 'Bearer ' + API_KEY
    },
    payload: JSON.stringify(payload),
    muteHttpExceptions: true
  };
  
  const response = UrlFetchApp.fetch(url, options);
  const json = response.getContentText();
  const data = JSON.parse(json);
  
  if (data.error) {
    if (data.error.code === 'quota_exceeded') {
      return 'Error: You exceeded your current quota, please check your plan and billing details.';
    } else {
      throw new Error(data.error.message);
    }
  }
  // return "This is a test response for: " + prompt;
  return data.choices[0].message.content.trim();
}

function GPTFunction(prompt) {
  return callChatGPT(prompt);
}

API_KEYの箇所は、先ほど作成したAPI Keyを入力してください。

AppScriptを保存して、スプレッドシートにて=callChatGPT("ここにプロンプトを入力")とすると、AIからの回答が返ってきます。

なお、上記のコードもChatGPTで出力しています。
また、モデルを変更したい場合は、model: "gpt-3.5-turbo",の箇所を

model: "gpt-4o",
model: "gpt-4-turbo",
model: "gpt-4",
model: "gpt-3.5-turbo-16k"

のように変更すればOKです。

おすすめの記事