最近流行りのChatGPT、OpenAIのAPIが利用できるということなので、実際に使ってみました。
また、いつものように、無料でサーバの処理のようなことが実現できるGoogle Apps Script(以下、GAS)からAPIを叩いて利用してみました。
OpenAIのAPI Keyの取得
まずはOpenAIのAPIを叩くために、API Keyを取得しましょう。
発行されたSecret Keyをコピーしてメモしておきましょう。
GASからChatGPTにリクエストを投げる
Secret Keyの取得ができたらもう利用できる準備が整いました。
早速GASでスクリプトを書いていきます。
GASをこれから初めて使うという方には、以下の記事でまとめているので参考にしてみてください。
今回は、きっと一番使われて結果が楽しいと思われるchat completionを利用します。
では、スクリプトを紹介します。
function chatGpt(text) { Logger.log(text) var url = "https://api.openai.com/v1/chat/completions"; var apiKey = 'OpenAIのAPI Keyをここに入力する' var headers = { 'Content-Type': 'application/json; charset=UTF-8', 'Authorization': 'Bearer ' + apiKey, }; var postData = { 'model': 'gpt-3.5-turbo', 'messages': [{'role': 'user', 'content': text}] }; var options = { 'method' : 'post', 'headers' : headers, 'payload' : JSON.stringify(postData), 'muteHttpExceptions':true }; response = UrlFetchApp.fetch(url, options); data = JSON.parse(response.getContentText('UTF-8')); return data.choices[0].message.content }
このchatGpt()
を呼び出すだけで、戻り値で結果を返してくれます。
function test() { var result = chatGpt('PHPでバブルソートを実装してください') Logger.log(result) }
これの実行結果は以下になりました。
markdownの形式なので、このブログに貼り付けるといい感じに整形してくれます。(このブログの記事入力がマークダウンのため)
以下はPHPで実装したバブルソートの例です。
function bubbleSort($array) { $count = count($array); for($i = 0; $i < $count; $i++) { for($j = 0; $j < $count - 1; $j++) { if($array[$j] > $array[$j+1]) { $temp = $array[$j]; $array[$j] = $array[$j+1]; $array[$j+1] = $temp; } } } return $array; } //使用例 $array = array(10, 3, 7, 6, 8, 1); echo "ソート前: "; print_r($array); $array = bubbleSort($array); echo "ソート後: "; print_r($array);
上記のバブルソートアルゴリズムでは、配列の数をカウントして、最初のループでインデックス0から最後までの要素を比較して、必要に応じて入れ替えます。内側のループは、現在の要素と次の要素を比較し、通常は小さい要素が前に来るように入れ替えます。次に、外側のループでは、同じプロセスを残りの要素に繰り返します。このプロセスを通じて、配列の要素は増加する順序で並び替えられます。
このように簡単にChatGPTにリクエストを投げることができました。
最後に
今回、GASからChatGPTにリクエストを投げ、結果を受け取ることができました。これを利用すれば、GASの処理をOpenAIというAIを利用したいろいろなことが実現できるということになります。夢が広がって眠れませんね。