Gemini (Web API)
概要
Gemini は Google が提供する生成AI(generative AI) である。大規模言語モデル(LLM)に基づいている。
ソフトウェアから Web API (Webサービス) として利用することができる。
Gemini API は有料であるが、モデルにより無料枠が設定されている。
なお、最新の Gemini 3 は今のところ無料枠は設定されていない。
無料枠の利用のみでも、Google アカウントの支払い方法にクレジットカードが登録されている必要がある。
アカウント作成とAPIキーの生成
Gemini の Web API を利用するには Google のアカウントを用いる。
-
Google アカウントを持っていない場合には作成する。
Gmail を使っていたり、Android のスマートフォンを使っている人はすでにアカウントがあるので
それを使えばよいが、新たに作成してもよい。
-
Google AI Studio
にアクセスする。Google アカウントでサインインしていない場合は、
ウィンドウ末尾の「Sign up and get started」ボタンを押し、
使用する Google アカウントでログインする。
必要に応じて本人確認が行われる。
-
「Welcome to AI Studio」というメッセージが表示される。
「Google AI Studio と Gemini API を使用して専門家またはビジネス向けのサービスを構築するデベロッパーとして、
私は利用規約に同意し、上でリンクされているプライバシー ポリシーを読んだことを認めます」
にチェックし「続行」ボタンを押す。
-
AI Studio のトップページになり、ウィンドウ左下の「Get API key」をクリックすると APIキーの一覧の画面になる。
右上の「APIキーを作成」ボタンを押したくなるが、
先に Google Cloud のプロジェクトを作成する必要がある。
よって、
Google Cloud のコンソール
にアクセスする。
-
「Google Cloud へのアクセスがブロックされました」という画面が表示された場合は、
Google アカウントの 2段階認証プロセスを有効にする必要がある。
「設定に移動」ボタンを押して、電話番号を登録するなどして設定する。
設定を終えたら再度
Google Cloud のコンソール
にアクセスする。
-
Google Cloud を使ったことがない場合には、
Google Cloud Platform の規約等に同意する必要がある。
ここでその画面になった場合には、利用規約に同意(チェック)し、「同意して続行」ボタンを押す。
-
「新しいプロジェクト」のページになる。
プロジェクト名を適宜設定し、「作成」ボタンを押す。
しばらくするとプロジェクトのダッシュボードのページになる。
-
ウィンドウ右上に「無料で利用開始」ボタンがある人は、ここでそれを押す。
まだ Google Cloud Platform の規約等に同意していない人は、その画面になる。
利用規約に同意(チェック)し、「同意して続行」ボタンを押す。
「お支払い情報の確認」の画面になったら、
まず「連絡先情報」を入力する。「プロファイルの種類」は「個人」にする。
次に「お支払い方法」を追加する。クレジットカード/デビッドカードを追加する
(すでにGoogleアカウントのお支払いプロファイルに登録されている場合は追加する必要はない)。
「カードを保存」し、「無料で利用開始」ボタンを押す。
「ようこそ 〜 さん」という画面になり「無料トライアルをご利用中です」と表示されているはずだが、
その対象が先ほど作成したプロジェクトではなく「Gemini Project」になっている場合がある。
Google Cloud ロゴの右側にプロジェクト名が表示されているので確認しておくこと。
-
APIキーのページ
に戻り、右上の「APIキーを作成」ボタンを押す。
-
「新しいキーを作成する」というポップアップが現れる。
「キー名の設定」欄には「ゼレンスキー」など適当な名前を入力する。
「インポートしたプロジェクトを選択」の欄は「No Cloud Projects Available」となっている。
そこをクリックし「プロジェクトをインポート」を選択する。
-
「プロジェクトをインポートする」というポップアップが現れる。
「インポート候補のプロジェクト」に Google Cloud に作成されているプロジェクトが現れる。
無料トライアルをしているプロジェクトがあればそれに、
そうでなければ先ほど作成したプロジェクトにチェックをして、現れる「インポート」ボタンを押す。
-
「インポートしたプロジェクトを選択」の欄で、インポートしたプロジェクトを選択し、「キーを作成」ボタンを押す。
-
APIキーの一覧の画面に戻る。生成したキーが一覧内に表示されている。
コピーのマークをクリックすると APIキーがクリップボードにコピーされるので、どこかに記録しておく。
(キーをクリックして詳細画面からコピーしてもよい)
-
「割り当てティア」の列に「お支払い情報を設定 使用不可」と表示されている場合は、
「お支払い情報を設定」をクリックすると「Gemini API 用の Google Cloud 請求先アカウントの設定」の画面になる。
「同意して実行」ボタンを押す。
-
まず「連絡先情報」を入力する。「プロファイルの種類」は「個人」にする。
次に「お支払い方法」を追加する。クレジットカード/デビッドカードを追加する
(すでにGoogleアカウントのお支払いプロファイルに登録されている場合は追加する必要はない)。
「カードを保存」し、「無料で利用開始」ボタンを押す。
-
「課金 請求先アカウントが複数あります」と表示された場合は、
左の「移動」をクリックすると、「お支払い / 概要」の画面に移動する。
無料枠を超えたら課金したい場合は、ウィンドウ右上の「有効化」ボタンを押す。
「フルアカウントを有効にする」というポップアップが表示されるので、「有効化」をクリックする。
-
少し時間をおいて APIキーのページ
にアクセスすると、「割り当てティア」の列の値が変わっている。
フルアカウントを有効にした場合には「Tier 1」と表示される。
API の使用が可能になっている。
プログラムの作成
Gemini の API は REST であり外部ライブラリを使わなくても使用できるが、
ここでは公式の Java用のライブラリを利用する。
- Google Gen AI Java SDK (GitHub)
ライブラリの公式ページ。説明にサンプルプログラムが掲載されている。
Maven を使う場合の dependency の書き方が示されているので、version を確認しておく。
Maven の利用
pom.xml の dependencies 要素の中に以下を追記する。version は前述の GitHub のページを確認し最新のものを指定する。
<dependency>
<groupId>com.google.genai</groupId>
<artifactId>google-genai</artifactId>
<version>1.28.0</version>
</dependency>
サンプルプログラムの GeminiJson では ライブラリ Jackson も使用するので、以下も追記する。
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.17.0</version>
</dependency>
Gemini クライアントの初期化と使用
Gemini との通信は Gemini クライアントである Client クラスを用いて行う。
ここでは、Gemini クライアントの生成時に APIキー (apiKey) を渡すことにする。
// Gemini クライアントをインスタンス化
Client client = Client.builder().apiKey(apiKey).build();
Gemini との会話は Models クラスの generateContent メソッドを用いて行う。
// Gemini に text を送り、返答 response を得る
GenerateContentResponse response =
client.models.generateContent(model, text, config);
model はモデル名を表す文字列で、"gemini-2.5-flash" などとする。
無料枠があるかはモデルに依存するので、料金のページを参照すること。
通常は "gemini-2.5-flash-lite", "gemini-2.5-flash" が速くてよいが、"gemini-2.5-pro" で複雑な推論をさせることもできる。
text は文字列で Gemini に話しかける内容である。
config は設定内容を表す
GenerateContentConfig
クラスのオブジェクトであるが、
特別な設定をしない場合には null でよい。
- GenerateContentConfig
よく使うメソッド: maxOutputTokens, candidateCount, systemInstruction, tools, responseMimeType, responseSchema
返答は GenerateContentResponse
オブジェクトの形で得られる。
色々な情報を含んでいるが、テキストだけを得たいのであれば text() メソッドを用いる。
// 返答のテキスト部分を text() で取得して表示
System.out.println("返答: " + response.text());
サンプルコード
定数 apiKey には自分のAPIキーを記入する。
シンプル
特別な設定はせず、デフォルトの設定で動かす例。
GeminiSimple.java
Google検索の使用
モデルのみを利用する場合には最新のニュースなどに対する質問に答えられないため、
Google 検索を実行し、それを踏まえた返答を生成させる。
内容が最新になるだけでなく、説明が詳しくなるなど内容が変化することもある。
なお、返答までの時間は長くなる。
GeminiSearch.java
出力を JSON 形式に変更
情報を抽出したり整理したりさせる場合、出力形式が文章だと都合が悪いことがある。
生成AIは出力形式を指示することができるが、ここでは JSON で返答するよう指示する。
返答の構造も指示することができるが、この例では Gemini に任せている。
ここでは JSON を扱うライブラリとして、
「データエンジニアリング」で学んだ Jackson を使っている。
GeminiJson.java