[GAS] Gemini API をサクッと使おう


AI チャットできるものといったら ChatGPT が有名ですが、ここでは Google の AI である「Gemini」の API を使いたいと思います。

前回の記事「Geminiはペアプロの相棒だ」でもあるとおりで VSCode との親和性がよく、使い勝手がよいと思います。

Gemini API との対話については複雑な通信は必要ありません。JSON での送受信、API キーの発行くらいでしょうか。

API キー発行について、ここではお試しなので、Gemini 1.5 Flash を使いました。無料で試せるためです。初期値では Gemini 2.0 になって、課金プランを選んでねの画面になるので、Gemini 1.5 に選びなおしてください。
API 発行画面のリンクをざっと探して見つからなかったので紹介しておきます。
以下のドキュメントからたどれます。ここで「Gemini API キーを取得する」を押してキーを発行する画面になります。ここでは対応する Google プロジェクトが必要なので、あらかじめ作成しておいてください。
https://ai.google.dev/gemini-api/docs?hl=ja

さてプログラムですが、聞きたいことをそのままテキストに載せて送信、これで答えが返ってきます。

function gemini(_text) {
  const KEY = 'ここに発行された API キーを入れる';
  const res = UrlFetchApp.fetch( 'https://generativelanguage.googleapis.com/v1beta/models' +
'/gemini-1.5-flash:generateContent?key={API_KEY}'.replace('{API_KEY}', KEY), {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    },
    payload: JSON.stringify({
      'contents': [{
        parts: [{ text: _text }]
      }]
    })
  });
  const cnt = res.getResponseCode() === 200 && JSON.parse(res.getContentText());
  return cnt?.candidates?.[0]?.content?.parts?.map(function(_part) { return _part.text });
}

上記ではテキストの応答のみですが、プログラムコードや画像、データなどは、最終行での「text」の部分を他の応答を使う必要があります。また応答は複数の形式を一気に返すため、全部対応するためにはループを組んで処理します。

今回はさわりだけなのでここまで。