ChatGPTのAPIをGoogle Apps Script(GAS)で試してみた
とうとうChatGPTのAPIが使えるようになりました。
というわけで、早速ChatGPTのAPIをGoogle Apps Script(GAS)で叩いてみたいと思います!
※ChatGPTのAPIをすぐに試したい場合は、無料でササッと使えるGASがオススメです。
ChatGPTのAPIをGoogle Apps Scriptでリクエストする方法は動画でも解説中です↓
まずAPIキーを用意しよう!
ChatGPTのAPIを叩くためにはAPIキーが必要になります。
下記の記事でOpenAIのAPIキーを取得する手順を解説しています。
メアドと携帯電話番号を用意してサクっと登録しましょう。
APIキーを発行し、文字列をコピペしておきます。
APIキーはスクリプトプロパティに保管
APIキーはコードに直書きしてもよいですが、うっかりコードを公開すると、APIキーが漏洩します。
悪い人に見つかると、勝手にバカバカとAPIが叩かれるので、Google Apps Scriptのスクリプトプロパティに保存しておきましょう。
APIKEYというプロパティに、APIキーの文字列を値として保存します。
スクリプトプロパティに格納しておけば、下記の形で呼び出しできます。
const apiKey = ScriptProperties.getProperty('APIKEY');
Google Apps ScriptでChatGPTのAPIをシンプルに実行
まずは最もシンプルにChatGPTのAPI叩いてみます。
下記記事にChatGPTのAPIを実行するサンプルコードを用意したので、スクリプトエディタにコピーしましょう。
GASを初めて実行時に求められる初回認証を許可すれば、スクリプトが実行されます。
このようにきちんとChatGPTの応答文を得られました。
過去のやり取りに応じた応答文をChatpGPTから返してもらおう
先ほどのは超シンプルなコードだったので、ChatGPTの強みは発揮できていません。
ChatpGPTの凄さを感じるために、7行目で定義したパラメータのmessagesを変更しましょう。
const messages = [
{'role': 'user', 'content': '日本で最も人口の多い都市はどこですか?'},
{'role': 'assistant', 'content': '東京です。'},
{'role': 'user', 'content': 'その次はどこですか?'},
{'role': 'assistant', 'content': '横浜市です。'},
{'role': 'user', 'content': 'その次はどこですか?'},
];
過去のChatpGPTへの投稿文と応答文も含めると、やり取りに応じた応答結果が返ってきます。
「次は?」や「続きを」といった文脈を汲んだ応答が欲しい場合はこの形でAPIを叩きましょう。
システムとしてChatpGPTにルールを命令しよう
messagesに設定できるroleにはsystemロールがあります。
フォーマットとしてアシスタントに指示する役割です。
これによって、「毎回語尾に特定ワードをつける」や「前提条件を設けた上でChatGPTに回答させる」といった挙動が可能です。
先程変更したmessagesを再度、以下のように変更します。
const messages = [
{'role': 'system', 'content': '語尾は80%の確率でニャン、20%の確率でシャーをつけてください。'},
{'role': 'user', 'content': '元気が出ないので励ましてください。'},
];
ネコのような2つの語尾をつけてもらう振る舞いをChatGPTにセットし、ユーザーの投稿文を送ってみます。
初回は語尾ではないものの、きちんと確率も配慮して語尾にニャンとシャーがついてきています。
不特定多数のユーザーからの応答を受け付ける前にシステムロールから振る舞いを指示しておけば、特徴あるチャットボットが作成可能です。
終わりに
ChatGPTのAPIをGoogle Apps Scriptで試してみました。
今回はシンプルな形から、過去のやり取りに応じた形、システムによるフォーマットと基本的な3パターンを試してみました。
このパターンを組み合わせたり応用すれば、ChatpGPTのAPIで色々活用できます。
Google Apps Scriptは無料で手軽に使えるので本当にオススメです。
ChatpGPTのAPIを試したいなぁと思ったら、Google Apps Scriptでサクッとお試ししましょう。
◯参考リンク
Discussion