どうも。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 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キーの取得については、こちらのブログがとても分かりやすいので、わたしのブログでは割愛します。
取得した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で画像認識をしてみよう」をお届けします。お楽しみに。