ポンコツエンジニアのごじゃっぺ開発日記。

いろいろポンコツだけど、気にするな。エンジニアの日々の開発などの記録を残していきます。 自動で収入を得られるサービスやシステムを作ることが目標!!

GASでChatGPTを利用する

最近流行りのChatGPTOpenAIのAPIが利用できるということなので、実際に使ってみました。

また、いつものように、無料でサーバの処理のようなことが実現できるGoogle Apps Script(以下、GAS)からAPIを叩いて利用してみました。

OpenAIのAPI Keyの取得

まずはOpenAIのAPIを叩くために、API Keyを取得しましょう。

platform.openai.com

発行されたSecret Keyをコピーしてメモしておきましょう。

GASからChatGPTにリクエストを投げる

Secret Keyの取得ができたらもう利用できる準備が整いました。

早速GASでスクリプトを書いていきます。

GASをこれから初めて使うという方には、以下の記事でまとめているので参考にしてみてください。

www.pnkts.net

今回は、きっと一番使われて結果が楽しいと思われるchat completionを利用します。

platform.openai.com

では、スクリプトを紹介します。

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を利用したいろいろなことが実現できるということになります。夢が広がって眠れませんね。

お問い合わせプライバシーポリシー制作物