[GAS Gemini API]#02 GASでGemini APIを使う下準備

Gemini APIAI

どうも。Kenny(tsujikenzo)です。このシリーズでは、 「GASでGemini APIを使おう」 について、全3回でお送りします。

前回のおさらい

前回は、「Gemini APIってなに?」をお送りしました。

今回は、「Gemini APIを使う下準備」をお届けします。

Gemini APIでできること = Capabilities

Gemini APIでは、さまざまな処理を行うことができます。

これらの処理能力は、 一般的に 「Capabilities (機能)」 と呼ばれ、APIがどのようなことができるのかを表しています。

Gemini APIの主なCapabilitiesとして、テキスト生成・処理、画像処理、マルチモーダル処理などがあります。

機能具体的な処理
モデル(ズ)利用可能なモデルの選択と情報取得 (例: Gemini 1.5 Pro, Gemini 1.5 Flash, Gemini 2.0 Flash)
テキスト生成・処理文章作成、翻訳、要約、質疑応答、コード生成、テキスト分類、感情分析
画像処理画像認識、画像分類、画像キャプション生成、オブジェクト検出
マルチモーダル処理画像とテキストの連携(画像の内容を説明したりする文章を生成する)、 音声とテキストの連携(音声をテキストに変換、その逆も)
その他埋め込み、関数呼び出し(外部APIと連携)

このような処理を組み合わせると、以下のような活用例が考えられます。

  • チャットボット: より自然で人間らしい会話ができるチャットボットを開発(例: 顧客からの質問に答えるだけでなく、雑談にも対応できるチャットボット)
  • カスタマーサポート: 顧客からの問い合わせに自動で回答するシステムを構築(例: 過去の問い合わせ履歴を学習し、より適切な回答を生成する)
  • コンテンツ生成: 記事、ブログ記事、広告コピーなどの作成を支援(例: 指定したキーワードに基づいて、SEOに強く、読者のエンゲージメントを高める記事を生成)
  • 翻訳ツール: 高精度な翻訳ツールを開発
  • 教育: 学生の質問に答える、エッセイの添削をするなど
  • 研究: 論文の執筆、データ分析などを支援

Capabilitiesは、公式ドキュメントで確認できますので、定期的にチェックするとよいでしょう。 

ちなみに、OpenAIの公式ドキュメントでも、Capabilitiesをチェックできます。 

GeminiのCapabilitiesは複数同時に使えるマルチモーダルAI

Gemini APIのCapabilitiesは、単独でしか扱えないものではなく、複数のCapabilitiesを同時に使うことができます。

Geminiは、テキスト、画像、音声など、複数の種類の情報を組み合わせて理解し、処理できるAIです。このようなAIをマルチモーダルAIと呼びます。

Gemini APIの使い方

それでは、Capabilitiesの1つである「Models(モデルズ)」を例に、Gemini APIの操作に不可欠なエンドポイントメソッドについて学んでいきましょう。

必要に応じて、公式ドキュメントのAPIリファレンスも参照ください。

Models  |  Google AI for Developers

エンドポイントとメソッド

Models Capabilitiesを利用するには、GAS(その他プログラミングなど)でエンドポイントメソッドを指定して、APIリクエストを送信する必要があります。

  • エンドポイント: APIとやり取りするためのURL。データを送信する場所を示します。
  • メソッド: エンドポイントに対して行う操作の種類を指定します。データを取得したいのか、データを送信したいのかなどを指定します。

Models Capabilitiesには、以下のエンドポイントとメソッドが用意されています。

エンドポイント目的メソッド
https://generativelanguage.googleapis.com/v1beta/models利用可能なモデルの一覧を取得するためのエンドポイントlist (リソースの一覧を取得)
https://generativelanguage.googleapis.com/v1beta/models/{model}特定のモデルの情報を取得するためのエンドポイント({model} の部分には、モデル名を指定します。例: gemini-1.5-pro)get (データを取得)

利用可能なモデルの一覧を取得したい場合は、https://generativelanguage.googleapis.com/v1beta/models エンドポイントに対してlistメソッドでリクエストを送信します。

特定のモデル (例: gemini-1.5-pro) の情報を取得したい場合は、https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-pro エンドポイントに対してgetメソッドでリクエストを送信します。

その他のCapabilitiesとエンドポイントとメソッド

Models以外の、その他のCapabilitiesと、エンドポイントとメソッドを、表にまとめてみました。 

VisionやAudio UnderstandingのCapabilities名に※印が付いているのは、エンドポイントが同一だからです。

画像や音声が、GenerateContentと同様のエンドポイントで処理できるのは、GeminiがマルチモーダルAIだからです。

それでは最後に、Gemini APIのテスト送信をしてみましょう。

APIキーを取得する

Gemini APIを使うために、APIキーを取得します。

APIキーの取得については、こちらのブログがとても分かりやすいので、わたしのブログでは割愛します。

Gemini APIをGASで利用できるようにする|freeelover
生成AIのメジャー度で言うとOpenAIが先行しておりますが、OpenAIがなんだか信用できない…という理由でGoogleの提供するGemini APIを使いたいというニーズがあることを知りました。 ということで、GeminiをGoogle Apps Script(以降GAS)で利用できるようにするための事前準備につ...

取得したAPIキーを、メモ帳などにコピペしておきましょう。

わたしのGemini APIキーは”  ”です。

エンドポイントとメソッドを確認する

今回は、最新のGeminiのモデルを知りたいので、利用可能なモデル一覧を取得してみます。

エンドポイント:https://generativelanguage.googleapis.com/v1beta/models

メソッドはlistでしたね。

GASを書いて実行する

スタンドアロンスクリプト(コンテナバインドスクリプトでも可能)を準備して、以下を実行しましょう。

APIキーは、先ほどメモしたキーを貼り付けてください。

listメソッドは、getで送信します。

/**
 * Geminiのモデルを確認する関数
 */
function getGeminiModels() {

  // API キーを設定
  const apiKey = "ここにあなたのAPI Keyを入力";

  // リクエストURLを設定
  const url = `https://generativelanguage.googleapis.com/v1beta/models?key=${apiKey}`;

  // リクエストヘッダーを設定
  const headers = {
    'Content-Type': 'application/json'
  };

  // リクエストオプションを設定
  const options = {
    method: 'get', // list メソッドは get で送信
    headers: headers
  };

  // HTTPリクエストを送信
  const response = UrlFetchApp.fetch(url, options);

  // レスポンスをJSON形式に変換
  const json = JSON.parse(response.getContentText());

  // レスポンス全体をログに出力
  console.log(json);

}

ログに、だーっとモデルの一覧が表示されたら成功です。(いつもこの瞬間は嬉しいですね) 

レスポンスの中身は、配列の中にJSONオブジェクトが入っています。

なので、以下のようなコードを加えると、最後のモデルが確認できそうです。

  // レスポンスを JSON 形式に変換
  const json = JSON.parse(response.getContentText());

  // models 配列から最後のモデル情報を取得
  const lastModel = json.models[json.models.length - 1]; 

  // 最後のモデル情報を出力
  console.log(lastModel);

JSONはオブジェクトと違って出力が順不動ではない(でしたよね?)ので、常にチェックしていれば、モデルが追加されたときに情報を拾えると思います。(違ったらごめんなさい。)

まとめ

以上で、「Gemini APIを使う下準備」をお送りしました。

軽くAPIを叩いてみて、レスポンスが返ってくることを確認できましたね。

次回は、「Gemini APIで画像認識をしてみよう」をお届けします。お楽しみに。

このシリーズの目次

タイトルとURLをコピーしました