はじめに
Google GeminiをAPIで利用する方法を記載する。
利用する方法としてGoogle AIとVertex AIの2種類がある。
Google AIはAPIキー認証で簡易に利用可能。個人開発に向いている。
Vertex AIはよりカスタマイズ性が高い。
もう少し詳細な違いは以下参照。
Google AI
APIキーの取得
Google AI for Developers にアクセスし、API キーを取得する。
API呼び出し(curl)
- 以下のコマンドを実行する。
- 取得したAPIキーへの置換を忘れず行う。
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash-exp:generateContent?key=GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [{
"parts":[{"text": "富士山とは何ですか?"}]
}]
}'
API呼び出し(python)
google-generativeai
import google.generativeai as genai
# APIキーの設定
genai.configure(api_key="GEMINI_API_KEY")
# モデルの初期化
model = genai.GenerativeModel(model_name="gemini-2.0-flash-exp")
# プロンプトの設定
prompt = "富士山とは何ですか?"
# コンテンツ生成の実行
response = model.generate_content(prompt)
# 結果の表示
print(response.candidates[0]['content']['parts'])
google-genai
from google import genai
from google.genai import types
# クライアントの初期化
client = genai.Client(api_key='GEMINI_API_KEY')
# コンテンツ生成の実行
response = client.models.generate_content(
model='gemini-2.0-flash-exp',
contents='富士山とは何ですか?',
config=types.GenerateContentConfig(
system_instruction='あなたは地理学の専門家として答えてください。',
temperature= 0.1,
),
)
# 結果の表示
print(response.text)
参考:Google Gen AI SDK ドキュメント
langchain_google_genai
from langchain_google_genai import ChatGoogleGenerativeAI
# APIキーの設定
google_api_key="GEMINI_API_KEY"
# LLMの初期化
model = ChatGoogleGenerativeAI(model="gemini-2.0-flash-exp", google_api_key=google_api_key)
# プロンプトの定義
prompt = "富士山とは何ですか?"
# 応答の生成
response = model.invoke(prompt)
print(response)
参考:
Vertex AI
サービスアカウントファイルの取得
-
Google Cloud プロジェクトの作成:
- Google Cloud Consoleにアクセスし、プロジェクトを作成する。
- 既存のプロジェクトを使用する場合は、そのプロジェクトを選択する。
-
Vertex AI APIの有効化:
- Google Cloud Consoleのナビゲーション メニューから「APIとサービス」 > 「ライブラリ」を選択する。
- 「Vertex AI API」を検索し、「有効にする」をクリックしてAPIを有効化する。
-
課金の有効化:
- Vertex AI APIを利用するには、プロジェクトで課金が有効になっている必要がある。
- Google Cloud Consoleの「課金」セクションで課金アカウントを設定する。
-
認証情報の設定:
-
サービス アカウントの作成:
- Google Cloud Consoleのナビゲーション メニューから「IAMと管理」 > 「サービス アカウント」を選択する。
- 「+ サービス アカウントを作成」をクリックし、サービス アカウント名、ID、説明を入力する。
- 「作成して続行」をクリックする。
-
ロールの割り当て:
- サービス アカウントに適切なロールを割り当てる。
- 「ロールを選択」で「Vertex AI ユーザー」などの必要な権限を選択し、「続行」をクリックする。
-
サービス アカウント キーの作成とダウンロード:
- サービス アカウントの詳細ページで「キー」タブを選択する。
- 「鍵を追加」 > 「新しい鍵を作成」をクリックする。
- キーのタイプとして「JSON」を選択し、「作成」をクリックする。
- JSON形式のキーファイルが自動的にダウンロードされる。
- このキーファイルは機密情報であるため、安全な場所に保管し、第三者と共有しないこと。
-
サービス アカウントの作成:
5-a. 環境変数の設定:
- ダウンロードしたサービス アカウントのキーファイルのパスを環境変数
GOOGLE_APPLICATION_CREDENTIALS
に設定する。export GOOGLE_APPLICATION_CREDENTIALS="path/to/your/service-account-file.json"
- この設定により、Google Cloud クライアント ライブラリは指定された認証情報を使用してAPIにアクセスできる。
5-b.
- もしくはコード内でサービスアカウントファイルを参照する
- 以降のコードはこの方法を用いる
API呼び出し(python)
Vertex AI SDK
import vertexai
from vertexai.generative_models import GenerativeModel
from google.oauth2 import service_account
# サービス アカウント キーファイルのパス
key_path = "./service-account-key/service-account-file.json"
# 認証情報の読み込み
credentials = service_account.Credentials.from_service_account_file(key_path)
PROJECT_ID = "vertexai-dev-1"
REGION = "us-central1" # e.g. us-central1
vertexai.init(project=PROJECT_ID, location=REGION, credentials=credentials)
model = GenerativeModel("gemini-2.0-flash-exp")
response = model.generate_content("富士山とは何ですか?")
print(response.text)
参考:
langchain_google_vertexai
from google.oauth2 import service_account
from langchain_google_vertexai import ChatVertexAI
# サービス アカウント キーファイルのパス
key_path = "./service-account-key/service-account-file.json"
# 認証情報の読み込み
credentials = service_account.Credentials.from_service_account_file(key_path)
# LLMの初期化
model = ChatVertexAI(
model="gemini-2.0-flash-exp",
project="vertexai-dev-1",
location="us-central1",
credentials=credentials,
)
# プロンプトの定義
prompt = "富士山とは何ですか?"
# 応答の生成
response = model.invoke(prompt)
print(response)