GPT-4のAPIをGoogle Apps Script(GAS)で実行する方法!
GPT-4のAPIが2023年7月6日より一般公開されて、誰でも利用可能になりました。
そこでGPT-4のAPIをGoogle Apps Script(GAS)で実行する方法を解説します。
Google Apps Script(GAS)のサンプルコードでGPT-4のAPIリクエストに必要な項目を説明します。
GPT-4のAPIが誰でも利用可能に
2023年7月6日にOpenAIがGPT-4のAPIを誰でも利用できるよう、一般公開すると公式サイトで発表しました。
GPT-4は有料版のChatGPT Plusでしか利用できず、APIはウェイトリスト登録後、招待メールが届いたユーザーしか使えませんでした。
ChatGPTよりも高精度の生成AIであるGPT-4のAPIが誰でも使えるようになったので、多くユーザーがAPI利用することが見込まれます。
↓GPT-4のAPI一般公開については下記の記事で詳細をまとめています。
GPT-4のAPI利用にはGASがおすすめ
GPT-4のAPIを利用方法としてはローコードやノーコードツールもありますが、プログラミングでの利用が一般的です。
プログラミングにおけるGPT-4のAPI使用事例では、Pythonが最も多いです。
ただ、オススメしたいのはGoogle Apps Script(GAS)です。
Google Apps Script(GAS)はクラウドサービスで開発環境を整えずに利用できます。
さらにGoogleスプレッドシートやGoogleドキュメントといったGoogle系サービスと連携して、入力プロンプトや生成結果の保存も簡単です。
PythonでもGoogle Colab(Colaboratory)を使えば、ブラウザ上でGPT-4のAPIリクエストはできます。
ただし、生成結果をファイルとして保存するのはひと手間かかります。
そうした点でGPT-4のAPIを利用する場合は、手軽にAPIリクエストができる点に加え、実行結果も保存しやすいGoogle Apps Script(GAS)がおすすめです。
まずOpenAIのAPI登録とAPIキーの発行
実際にGPT-4のAPIをリクエストするには、開発元であるOpenAIのAPIに対して利用登録が必要になります。
利用登録後にAPIキーを発行すれば、GPT-4のAPIリクエストが可能です。
下記の記事でOpenAIのAPI利用登録とAPIキー発行手順を解説しています。
まだOpenAIのAPIを利用したことがない人は、記事で解説している手順に従ってAPI利用登録とキー発行を行いましょう。
GPT-4のAPIが使えるか確認方法
OpenAIのAPI利用登録ならびにAPIキー発行ができたら、実際にGoogle Apps Script(GAS)でGPT-4のAPIを実行できると思うかもしれません。
ただし、GPT-4のAPIが登録したOpenAIのAPIアカウントで利用可能か確認する必要があります。
というのも、GPT-4のAPIは2023年7月6日から一般公開したとOpenAIが発表しているものの、まだ利用できないユーザーが多く存在しているからです。
そのため、GPT-4のAPIが利用できるか確認しなければなりません。
GPT-4のAPIが利用可能か調べる方法はPlayGroundです。
ChatのPlayGroundのURLにアクセスすると、モデルの選択ができる項目があります。
このモデル選択に「gpt4」と表示されていれば、GPT-4のAPIが利用可能です。
ただ、gpt-4がPlayGroundのモデルに表示されず、gpt-3.5-turboのみ表示される場合もあります。
GPT-4のAPIが利用不可能なので、開放されるまでもうしばらく待ちましょう。
GASでGPT-4のAPIを使うサンプルコード
GPT-4のAPIが利用できることがPlayGroundで確認できましたら、Google Apps Script(GAS)でAPIリクエストを行いたいと思います。
実際にGoogle Apps Script(GAS)のスクリプトエディタを使って、APIキーの設定手順や、サンプルコードを説明します。
function requestGpt4Completion() {
//スクリプトプロパティに設定したOpenAIのAPIキーを取得
const apiKey = PropertiesService.getScriptProperties().getProperty('APIKEY');
//GPT-4のAPIのエンドポイントを設定
const apiUrl = 'https://api.openai.com/v1/chat/completions';
//GPT-4に投げるメッセージを定義(ユーザーロールの投稿文のみ)
const messages = [{'role': 'user', 'content': 'Google Apps Scriptによる業務改善事例とサンプルコードを教えてください。'}];
//OpenAIのAPIリクエストに必要なヘッダー情報を設定
const headers = {
'Authorization':'Bearer '+ apiKey,
'Content-type': 'application/json',
'X-Slack-No-Retry': 1
};
//GPT-4のモデルやトークン上限、プロンプトをオプションに設定
const options = {
'muteHttpExceptions' : true,
'headers': headers,
'method': 'POST',
'payload': JSON.stringify({
'model': 'gpt-4',
'max_tokens' : 2048,
'temperature' : 0.9,
'messages': messages})
};
//OpenAIのGPT-4にAPIリクエストを送り、結果を変数に格納
const response = JSON.parse(UrlFetchApp.fetch(apiUrl, options).getContentText());
//GPT-4のAPIレスポンスをログ出力
console.log(response.choices[0].message.content);
}
GASスクリプトの内容は、ChatGPTをGASで実行するときと同様です。
OpenAIのAPIキーはコード上に直書きするのはよくないので、スクリプトプロパティに設定して読み込むようにしましょう。
OpenAIのChat機能のAPIエンドポイントとなるURLを指定し、GPT-4に送るメッセージを定義します。
※今回はシンプルにユーザーロールからのメッセージのみ送ります。
APIリクエストヘッダーに加えてパラメータを設定しますが、そこで「model」に「gpt-4」を設定します。
通常のGPT-4(8K版)は8000トークンまで扱えるので、max_tokensも大きめに設定できます。
最後にUrlFetchApp.fetchでエンドポイントURLとオプション情報を引数にすれば、GPT-4のAPIにリクエストされます。
GPT-4のAPIリクエストするGASサンプルコードを実行すると、実行ログに応答結果が返ってきます。
GASの業務改善事例とそのサンプルコードを要求したところ、3つの業務改善事例の概要とサンプルコードをGPT-4が生成してくれました。
Google Apps Script(GAS)は、G Suiteの各種アプリケーション(Gmail、Googleドキュメント、スプレッドシートなど)を自動化するためのスクリプト言語です。以下に、GASを活用した業務改善事例とサンプルコードを示します。
1. **Gmailとスプレッドシートの連携**
事例:問い合わせメールの自動整理・分類
Gmailから特定のキーワードが含まれるメールを取得し、その情報をGoogleスプレッドシートに自動的に保存します。これにより、問い合わせメールの内容を一覧化し、それに基づく分析や対応の効率化を図ることができます。
サンプルコード:
```javascript
function extractFromGmail() {
var threads = GmailApp.search('subject:問い合わせ from:(example@example.com)');
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
for (var i = 0; i < threads.length; i++) {
var messages = threads[i].getMessages();
for (var j = 0; j < messages.length; j++) {
sheet.appendRow([messages[j].getDate(), messages[j].getBody()]);
}
}
}
```
2. **定期的なレポート作成の自動化**
事例:スプレッドシートに保存されたデータをもとに、定期的なレポートをGoogleドキュメントで作成
スプレッドシートのデータを読み取り、それをもとにレポートを作成し、Googleドキュメントに出力します。この処理を定期的に実行することで、レポート作成作業の自動化が可能です。
サンプルコード:
```javascript
function createReport() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var data = sheet.getDataRange().getValues();
var doc = DocumentApp.create('Report');
var body = doc.getBody();
for (var i = 0; i < data.length; i++) {
body.appendParagraph(data[i][0] + ': ' + data[i][1]);
}
}
```
3. **自動リマインダー機能**
事例:スプレッドシート上の期限情報から自動でリマインダーメールを送信
スプレッドシート上に記載された期限情報をもとに、期限日の数日前になったら自動でリマインダーメールを送信します。
サンプルコード:
```javascript
function sendReminder() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var data = sheet.getDataRange().getValues();
var today = new Date();
for (var i = 0; i < data.length; i++) {
var deadline = new Date(data[i][0]);
var daysLeft = Math.floor((deadline - today) / (1000 * 60 * 60 * 24));
if (daysLeft == 3) {
MailApp.sendEmail({
to: 'example@example.com',
subject: 'Deadline reminder',
body: 'You have ' + daysLeft + ' days left until the deadline for ' + data[i][1],
});
}
}
}
```
これらの事例は比較的シンプルなものですが、Google Apps Scriptは非常に柔軟であり、複雑な業務流を自動化することも可能です。
変数の定義がvarを使っているので、少し古いプログラムですが、すぐに実用可能なGASコードを生成してくれました。
文脈に沿った回答をGPT-4から得るには
なお、GPT-4のAPIについても、ChatGPTと同じように文脈に沿った出力が可能です。
ChatGPTのAPIをGoogle Apps Script(GAS)でリクエストする方法を紹介した記事で、過去のやり取りを含めるやり方を解説しています。
前述のGPT-4のAPIをリクエストするサンプルコードは、ユーザーロール1つのみメッセージに指定していました。
そこに過去のユーザーロールのメッセージやGPT-4の応答結果であるアシスタントロールのメッセージを加えることで、文脈に沿った生成をしてくれます。
ただし、過去のやり取りを多く含めると、入力トークン数が増大し、API利用料が高額になるので注意が必要です。
※GPT-4のAPI利用料金については下記の記事で解説しています。
まとめ・終わりに
今回、一般公開されたGPT-4のAPIをGoogle Apps Script(GAS)でリクエストするコードを紹介しました。
GPT-4のAPIが誰でも使えるようになりましたが、手軽にAPI実行したい場合はGoogle Apps Script(GAS)がおすすめです。
OpenAIのAPI利用登録し、APIキーを発行すれば、開発環境等は不要でGPT-4のAPIリクエストをGASで試すことができます。
ただ、注意点として、GPT-4のAPIはまだアカウントによっては開放されていないケースがあります。
そのため、OpenAIのプレイグラウンドで、GPT-4のモデルが選択可能か確認しましょう。
GPT-4はChatGPTよりも高性能なので、色々な用途で利用が見込めます。
ぜひGoogle Apps Script(GAS)を活用して、GPT-4の便利な自動化事例を作っていきましょう。
ただし、GPT-4のAPIは利用料金がChatGPTよりもかなり高価なので、実行しすぎには注意です。
ディスカッション
コメント一覧
まだ、コメントがありません