Gemini リクエストに画像を追加して、含まれる画像の内容を理解するタスクを実行できます。このページでは、Google Cloud コンソールと Vertex AI API を使用して、Vertex AI で Gemini に送信するリクエストに画像を追加する方法について説明します。
サポートされているモデル
次の表に、画像理解をサポートするモデルを示します。
モデル | メディアの詳細 | MIME タイプ |
---|---|---|
Gemini 2.5 Flash (プレビュー) |
|
|
Gemini 2.5 Flash-Lite (プレビュー) |
|
|
Gemini 2.5 Flash 画像 |
|
|
Gemini 2.5 Flash-Lite |
|
|
画像生成機能を搭載した Gemini 2.0 Flash (プレビュー) |
|
|
Gemini 2.5 Pro |
|
|
Gemini 2.5 Flash |
|
|
Gemini 2.0 Flash |
|
|
Gemini 2.0 Flash-Lite |
|
|
割り当て指標は generate_content_video_input_per_base_model_id_and_resolution
です。
Gemini モデルでサポートされている言語の一覧については、モデル情報の Google モデルをご覧ください。マルチモーダル プロンプトの設計方法について詳しくは、マルチモーダル プロンプトを設計するをご覧ください。モバイルアプリやウェブアプリから Gemini を直接使用することをお考えの場合は、Swift、Android、ウェブ、Flutter、Unity アプリの Firebase AI Logic クライアント SDK をご覧ください。
リクエストに画像を追加する
Gemini へのリクエストに単一の画像または複数の画像を追加できます。
単一の画像
次の各タブのサンプルコードでは、画像に含まれているものを識別するさまざまな方法を示します。このサンプルは、すべての Gemini マルチモーダル モデルで動作します。
コンソール
Google Cloud コンソールでマルチモーダル プロンプトを送信する手順は次のとおりです。Google Cloud コンソールの [Vertex AI] セクションで、[Vertex AI Studio] ページに移動します。
[自由形式を開く] をクリックします。
省略可: モデルとパラメータを構成します。
- Model: モデルを選択します。
- リージョン: 使用するリージョンを選択します。
温度: スライダーまたはテキスト ボックスを使用して、温度の値を入力します。
温度は、レスポンス生成時のサンプリングに使用されます。レスポンス生成は、
topP
とtopK
が適用された場合に発生します。温度は、トークン選択のランダム性の度合いを制御します。温度が低いほど、確定的で自由度や創造性を抑えたレスポンスが求められるプロンプトに適しています。一方、温度が高いと、より多様で創造的な結果を導くことができます。温度が0
の場合、確率が最も高いトークンが常に選択されます。この場合、特定のプロンプトに対するレスポンスはほとんど確定的ですが、わずかに変動する可能性は残ります。モデルが返すレスポンスが一般的すぎる、短すぎる、あるいはフォールバック(代替)レスポンスが返ってくる場合は、温度を高く設定してみてください。
出力トークンの上限: スライダーまたはテキスト ボックスを使用して、最大出力の上限値を入力します。
レスポンスで生成できるトークンの最大数。1 トークンは約 4 文字です。100 トークンは約 60~80 語に相当します。
レスポンスを短くしたい場合は小さい値を、長くしたい場合は大きい値を指定します。
停止シーケンスを追加: 省略可。停止シーケンスを入力します。これはスペースを含む一連の文字列です。モデルが停止シーケンスに遭遇すると、レスポンスの生成が停止します。停止シーケンスはレスポンスには含まれません。停止シーケンスは 5 つまで追加できます。
省略可: 詳細パラメータを構成するには、[詳細] をクリックして、次のように構成します。
クリックして [高度な構成] を開く
Top-K: スライダーまたはテキスト ボックスを使用して、Top-K の値を入力します(Gemini 1.5 ではサポートされていません)。
Top-K は、モデルが出力用にトークンを選択する方法を変更します。Top-K が1
の場合、次に選択されるトークンは、モデルの語彙内のすべてのトークンで最も確率の高いものであることになります(グリーディ デコードとも呼ばれます)。Top-K が3
の場合は、最も確率が高い上位 3 つのトークンから次のトークン選択されることになります(温度を使用します)。トークン選択のそれぞれのステップで、最も高い確率を持つ Top-K のトークンがサンプリングされます。その後、トークンはトップ P に基づいてさらにフィルタリングされ、最終的なトークンは温度サンプリングを用いて選択されます。
ランダムなレスポンスを減らしたい場合は小さい値を、ランダムなレスポンスを増やしたい場合は大きい値を指定します。
- トップ P: スライダーまたはテキスト ボックスを使用して、トップ P の値を入力します。確率の合計が Top-P の値と等しくなるまで、最も確率が高いものから最も確率が低いものの順に、トークンが選択されます。結果を最小にするには、Top-P を
0
に設定します。 - 最大レスポンス数: スライダーまたはテキスト ボックスを使用して、生成するレスポンスの数の値を入力します。
- ストリーミング レスポンス: 有効にすると、レスポンスが生成されたときに出力されます。
- 安全フィルタのしきい値: 有害なおそれのあるレスポンスが表示される可能性のしきい値を選択します。
- グラウンディングを有効にする: マルチモーダル プロンプトでは、グラウンティングはサポートされていません。
[メディアを挿入] をクリックし、ファイルのソースを選択します。
アップロード
アップロードするファイルを選択して [開く] をクリックします。
URL
使用するファイルの URL を入力し、[挿入] をクリックします。
Cloud Storage
バケットを選択してから、バケット内のインポートするファイルを選択し、[選択] をクリックします。
Google ドライブ
- このオプションを初めて選択するときに、アカウントを選択して Vertex AI Studio がアカウントにアクセスできるように同意します。合計サイズが最大 10 MB の複数のファイルをアップロードできます。1 つのファイルのサイズが 7 MB を超えないようにしてください。
- 追加するファイルをクリックします。
[選択] をクリックします。
ファイルのサムネイルが [プロンプト] ペインに表示されます。トークンの合計数も表示されます。プロンプト データがトークンの上限を超えると、トークンは切り捨てられ、データの処理には含まれません。
[プロンプト] ペインにテキスト プロンプトを入力します。
省略可: [テキストのトークン ID] と [トークン ID] を表示するには、[プロンプト] ペインで [トークン数] をクリックします。
[送信] をクリックします。
省略可: プロンプトを [マイプロンプト] に保存するには、[
保存] をクリックします。省略可: プロンプトの Python コードまたは curl コマンドを取得するには、[
コードを取得] をクリックします。
Python
インストール
pip install --upgrade google-genai
詳しくは、SDK リファレンス ドキュメントをご覧ください。
Vertex AI で Gen AI SDK を使用するための環境変数を設定します。
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
Go
Go をインストールまたは更新する方法について学びます。
詳しくは、SDK リファレンス ドキュメントをご覧ください。
Vertex AI で Gen AI SDK を使用するための環境変数を設定します。
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
Node.js
インストール
npm install @google/genai
詳しくは、SDK リファレンス ドキュメントをご覧ください。
Vertex AI で Gen AI SDK を使用するための環境変数を設定します。
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
Java
Java をインストールまたは更新します。
詳しくは、SDK リファレンス ドキュメントをご覧ください。
Vertex AI で Gen AI SDK を使用するための環境変数を設定します。
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
REST
環境をセットアップしたら、REST を使用してテキスト プロンプトをテストできます。次のサンプルは、パブリッシャー モデルのエンドポイントにリクエストを送信します。
Cloud Storage に保存されている画像を追加することも、base64 でエンコードされた画像データを使用することもできます。Cloud Storage 内の画像
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_ID
: 実際のプロジェクト ID。FILE_URI
: プロンプトに含めるファイルの URI または URL。指定できる値は以下のとおりです。- Cloud Storage バケット URI: オブジェクトは一般公開されているか、リクエストを送信するプロジェクトと同じ Google Cloud プロジェクトに存在している必要があります。
gemini-2.0-flash
とgemini-2.0-flash-lite
の場合、サイズの上限は 2 GB です。 - HTTP URL: ファイルの URL は一般公開されている必要があります。リクエストごとに 1 つの動画ファイル、1 つの音声ファイル、最大 10 個の画像ファイルを指定できます。音声ファイル、動画ファイル、ドキュメントのサイズは 15 MB 以下にする必要があります。
- YouTube 動画の URL: YouTube 動画は、 Google Cloud コンソールのログインに使用したアカウントが所有しているか、公開されている必要があります。リクエストごとにサポートされる YouTube 動画の URL は 1 つだけです。
fileURI
を指定する場合は、ファイルのメディアタイプ(mimeType
)も指定する必要があります。VPC Service Controls が有効になっている場合、fileURI
のメディア ファイル URL の指定はサポートされていません。Cloud Storage に画像ファイルがない場合は、MIME タイプが
image/jpeg
の一般公開ファイルgs://cloud-samples-data/generative-ai/image/scones.jpg
を使用できます。この画像を表示するには、サンプルの画像ファイルを開きます。- Cloud Storage バケット URI: オブジェクトは一般公開されているか、リクエストを送信するプロジェクトと同じ Google Cloud プロジェクトに存在している必要があります。
MIME_TYPE
:data
フィールドまたはfileUri
フィールドで指定されたファイルのメディアタイプ。指定できる値は以下のとおりです。クリックして MIME タイプを開く
application/pdf
audio/mpeg
audio/mp3
audio/wav
image/png
image/jpeg
image/webp
text/plain
video/mov
video/mpeg
video/mp4
video/mpg
video/avi
video/wmv
video/mpegps
video/flv
TEXT
: プロンプトに含める指示のテキスト。例:What is shown in this image?
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json
という名前のファイルに保存します。ターミナルで次のコマンドを実行して、このファイルを現在のディレクトリに作成または上書きします。
cat > request.json << 'EOF' { "contents": { "role": "USER", "parts": [ { "fileData": { "fileUri": "FILE_URI", "mimeType": "MIME_TYPE" } }, { "text": "TEXT" } ] } } EOF
その後、次のコマンドを実行して REST リクエストを送信します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-1.5-flash:generateContent"
PowerShell
リクエスト本文を request.json
という名前のファイルに保存します。ターミナルで次のコマンドを実行して、このファイルを現在のディレクトリに作成または上書きします。
@' { "contents": { "role": "USER", "parts": [ { "fileData": { "fileUri": "FILE_URI", "mimeType": "MIME_TYPE" } }, { "text": "TEXT" } ] } } '@ | Out-File -FilePath request.json -Encoding utf8
その後、次のコマンドを実行して REST リクエストを送信します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-1.5-flash:generateContent" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
Base64 画像データ
リクエストのデータを使用する前に、次のように置き換えます。
LOCATION
: リクエストを処理するリージョン。サポートされているリージョンを入力します。サポートされているリージョンの一覧については、利用可能なロケーションをご覧ください。クリックして、利用可能なリージョンの一部を開く
us-central1
us-west4
northamerica-northeast1
us-east4
us-west1
asia-northeast3
asia-southeast1
asia-northeast1
PROJECT_ID
: 実際のプロジェクト ID。 プロンプトにインラインで含める画像、PDF、または動画の Base64 エンコード。メディアをインラインで含める場合は、データのメディアタイプ(B64_BASE_IMAGE
mimeType
)も指定する必要があります。MIME_TYPE
:data
フィールドまたはfileUri
フィールドで指定されたファイルのメディアタイプ。指定できる値は以下のとおりです。クリックして MIME タイプを開く
application/pdf
audio/mpeg
audio/mp3
audio/wav
image/png
image/jpeg
image/webp
text/plain
video/mov
video/mpeg
video/mp4
video/mpg
video/avi
video/wmv
video/mpegps
video/flv
TEXT
: プロンプトに含める指示のテキスト。 例:What is shown in this image?
。
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json
という名前のファイルに保存します。ターミナルで次のコマンドを実行して、このファイルを現在のディレクトリに作成または上書きします。
cat > request.json << 'EOF' { "contents": { "role": "USER", "parts": [ { "inlineData": { "data": "B64_BASE_IMAGE", "mimeType": "MIME_TYPE" } }, { "text": "TEXT" } ] } } EOF
その後、次のコマンドを実行して REST リクエストを送信します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-1.5-flash:generateContent"
PowerShell
リクエスト本文を request.json
という名前のファイルに保存します。ターミナルで次のコマンドを実行して、このファイルを現在のディレクトリに作成または上書きします。
@' { "contents": { "role": "USER", "parts": [ { "inlineData": { "data": "B64_BASE_IMAGE", "mimeType": "MIME_TYPE" } }, { "text": "TEXT" } ] } } '@ | Out-File -FilePath request.json -Encoding utf8
その後、次のコマンドを実行して REST リクエストを送信します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-1.5-flash:generateContent" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
generateContent
メソッドを使用して、レスポンスが完全に生成された後に返されるようにリクエストします。ユーザーが認識するレイテンシを短縮するには、streamGenerateContent
メソッドを使用して、生成時にレスポンスをストリーミングします。- マルチモーダル モデル ID は、URL の末尾のメソッドの前に配置されます(例:
gemini-2.0-flash
)。このサンプルでは、他のモデルもサポートされている場合があります。
複数の画像
以下の各タブでは、プロンプト リクエストに複数の画像を含める方法を説明します。各サンプルは、次の入力の 2 つのセットを受け取ります。
- 人気のある都市のランドマークの画像
- 画像のメディアタイプ
- 画像内の都市とランドマークを示すテキスト
このサンプルでは、3 つ目の画像とメディアタイプも取り込まれますが、テキストは取り込まれません。このサンプルは、3 つ目の画像に表示されている都市とランドマークを示すテキスト レスポンスを返します。
これらの画像サンプルは、すべての Gemini マルチモーダル モデルで使用できます。
コンソール
Google Cloud コンソールでマルチモーダル プロンプトを送信する手順は次のとおりです。Google Cloud コンソールの [Vertex AI] セクションで、[Vertex AI Studio] ページに移動します。
[自由形式を開く] をクリックします。
省略可: モデルとパラメータを構成します。
- Model: モデルを選択します。
- リージョン: 使用するリージョンを選択します。
温度: スライダーまたはテキスト ボックスを使用して、温度の値を入力します。
温度は、レスポンス生成時のサンプリングに使用されます。レスポンス生成は、
topP
とtopK
が適用された場合に発生します。温度は、トークン選択のランダム性の度合いを制御します。温度が低いほど、確定的で自由度や創造性を抑えたレスポンスが求められるプロンプトに適しています。一方、温度が高いと、より多様で創造的な結果を導くことができます。温度が0
の場合、確率が最も高いトークンが常に選択されます。この場合、特定のプロンプトに対するレスポンスはほとんど確定的ですが、わずかに変動する可能性は残ります。モデルが返すレスポンスが一般的すぎる、短すぎる、あるいはフォールバック(代替)レスポンスが返ってくる場合は、温度を高く設定してみてください。
出力トークンの上限: スライダーまたはテキスト ボックスを使用して、最大出力の上限値を入力します。
レスポンスで生成できるトークンの最大数。1 トークンは約 4 文字です。100 トークンは約 60~80 語に相当します。
レスポンスを短くしたい場合は小さい値を、長くしたい場合は大きい値を指定します。
停止シーケンスを追加: 省略可。停止シーケンスを入力します。これはスペースを含む一連の文字列です。モデルが停止シーケンスに遭遇すると、レスポンスの生成が停止します。停止シーケンスはレスポンスには含まれません。停止シーケンスは 5 つまで追加できます。
省略可: 詳細パラメータを構成するには、[詳細] をクリックして、次のように構成します。
クリックして [高度な構成] を開く
Top-K: スライダーまたはテキスト ボックスを使用して、Top-K の値を入力します(Gemini 1.5 ではサポートされていません)。
Top-K は、モデルが出力用にトークンを選択する方法を変更します。Top-K が1
の場合、次に選択されるトークンは、モデルの語彙内のすべてのトークンで最も確率の高いものであることになります(グリーディ デコードとも呼ばれます)。Top-K が3
の場合は、最も確率が高い上位 3 つのトークンから次のトークン選択されることになります(温度を使用します)。トークン選択のそれぞれのステップで、最も高い確率を持つ Top-K のトークンがサンプリングされます。その後、トークンはトップ P に基づいてさらにフィルタリングされ、最終的なトークンは温度サンプリングを用いて選択されます。
ランダムなレスポンスを減らしたい場合は小さい値を、ランダムなレスポンスを増やしたい場合は大きい値を指定します。
- トップ P: スライダーまたはテキスト ボックスを使用して、トップ P の値を入力します。確率の合計が Top-P の値と等しくなるまで、最も確率が高いものから最も確率が低いものの順に、トークンが選択されます。結果を最小にするには、Top-P を
0
に設定します。 - 最大レスポンス数: スライダーまたはテキスト ボックスを使用して、生成するレスポンスの数の値を入力します。
- ストリーミング レスポンス: 有効にすると、レスポンスが生成されたときに出力されます。
- 安全フィルタのしきい値: 有害なおそれのあるレスポンスが表示される可能性のしきい値を選択します。
- グラウンディングを有効にする: マルチモーダル プロンプトでは、グラウンティングはサポートされていません。
[メディアを挿入] をクリックし、ファイルのソースを選択します。
アップロード
アップロードするファイルを選択して [開く] をクリックします。
URL
使用するファイルの URL を入力し、[挿入] をクリックします。
Cloud Storage
バケットを選択してから、バケット内のインポートするファイルを選択し、[選択] をクリックします。
Google ドライブ
- このオプションを初めて選択するときに、アカウントを選択して Vertex AI Studio がアカウントにアクセスできるように同意します。合計サイズが最大 10 MB の複数のファイルをアップロードできます。1 つのファイルのサイズが 7 MB を超えないようにしてください。
- 追加するファイルをクリックします。
[選択] をクリックします。
ファイルのサムネイルが [プロンプト] ペインに表示されます。トークンの合計数も表示されます。プロンプト データがトークンの上限を超えると、トークンは切り捨てられ、データの処理には含まれません。
[プロンプト] ペインにテキスト プロンプトを入力します。
省略可: [テキストのトークン ID] と [トークン ID] を表示するには、[プロンプト] ペインで [トークン数] をクリックします。
[送信] をクリックします。
省略可: プロンプトを [マイプロンプト] に保存するには、[
保存] をクリックします。省略可: プロンプトの Python コードまたは curl コマンドを取得するには、[
コードを取得] をクリックします。
Python
インストール
pip install --upgrade google-genai
詳しくは、SDK リファレンス ドキュメントをご覧ください。
Vertex AI で Gen AI SDK を使用するための環境変数を設定します。
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
Go
Go をインストールまたは更新する方法について学びます。
詳しくは、SDK リファレンス ドキュメントをご覧ください。
Vertex AI で Gen AI SDK を使用するための環境変数を設定します。
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
Node.js
インストール
npm install @google/genai
詳しくは、SDK リファレンス ドキュメントをご覧ください。
Vertex AI で Gen AI SDK を使用するための環境変数を設定します。
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
Java
Java をインストールまたは更新します。
詳しくは、SDK リファレンス ドキュメントをご覧ください。
Vertex AI で Gen AI SDK を使用するための環境変数を設定します。
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_VERTEXAI=True
REST
環境をセットアップしたら、REST を使用してテキスト プロンプトをテストできます。次のサンプルは、パブリッシャー モデルのエンドポイントにリクエストを送信します。
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_ID
:FILE_URI1
: プロンプトに含めるファイルの URI または URL。指定できる値は以下のとおりです。- Cloud Storage バケット URI: オブジェクトは一般公開されているか、リクエストを送信するプロジェクトと同じ Google Cloud プロジェクトに存在している必要があります。
gemini-2.0-flash
とgemini-2.0-flash-lite
の場合、サイズの上限は 2 GB です。 - HTTP URL: ファイルの URL は一般公開されている必要があります。リクエストごとに 1 つの動画ファイル、1 つの音声ファイル、最大 10 個の画像ファイルを指定できます。音声ファイル、動画ファイル、ドキュメントのサイズは 15 MB 以下にする必要があります。
- YouTube 動画の URL: YouTube 動画は、 Google Cloud コンソールのログインに使用したアカウントが所有しているか、公開されている必要があります。リクエストごとにサポートされる YouTube 動画の URL は 1 つだけです。
fileURI
を指定する場合は、ファイルのメディアタイプ(mimeType
)も指定する必要があります。VPC Service Controls が有効になっている場合、fileURI
のメディア ファイル URL の指定はサポートされていません。Cloud Storage に画像ファイルがない場合は、MIME タイプが
image/png
の一般公開ファイルgs://cloud-samples-data/vertex-ai/llm/prompts/landmark1.png
を使用できます。この画像を表示するには、サンプルの画像ファイルを開きます。- Cloud Storage バケット URI: オブジェクトは一般公開されているか、リクエストを送信するプロジェクトと同じ Google Cloud プロジェクトに存在している必要があります。
MIME_TYPE
:data
フィールドまたはfileUri
フィールドで指定されたファイルのメディアタイプ。指定できる値は以下のとおりです。 わかりやすくするために、このサンプルでは 3 つの入力画像すべてに同じメディアタイプを使用します。クリックして MIME タイプを開く
application/pdf
audio/mpeg
audio/mp3
audio/wav
image/png
image/jpeg
image/webp
text/plain
video/mov
video/mpeg
video/mp4
video/mpg
video/avi
video/wmv
video/mpegps
video/flv
TEXT1
: プロンプトに含める指示のテキスト。 例:city: Rome, Landmark: the Colosseum
FILE_URI2
: プロンプトに含めるファイルの URI または URL。指定できる値は以下のとおりです。- Cloud Storage バケット URI: オブジェクトは一般公開されているか、リクエストを送信するプロジェクトと同じ Google Cloud プロジェクトに存在している必要があります。
gemini-2.0-flash
とgemini-2.0-flash-lite
の場合、サイズの上限は 2 GB です。 - HTTP URL: ファイルの URL は一般公開されている必要があります。リクエストごとに 1 つの動画ファイル、1 つの音声ファイル、最大 10 個の画像ファイルを指定できます。音声ファイル、動画ファイル、ドキュメントのサイズは 15 MB 以下にする必要があります。
- YouTube 動画の URL: YouTube 動画は、 Google Cloud コンソールのログインに使用したアカウントが所有しているか、公開されている必要があります。リクエストごとにサポートされる YouTube 動画の URL は 1 つだけです。
fileURI
を指定する場合は、ファイルのメディアタイプ(mimeType
)も指定する必要があります。VPC Service Controls が有効になっている場合、fileURI
のメディア ファイル URL の指定はサポートされていません。Cloud Storage に画像ファイルがない場合は、MIME タイプが
image/png
の一般公開ファイルgs://cloud-samples-data/vertex-ai/llm/prompts/landmark2.png
を使用できます。この画像を表示するには、サンプルの画像ファイルを開きます。- Cloud Storage バケット URI: オブジェクトは一般公開されているか、リクエストを送信するプロジェクトと同じ Google Cloud プロジェクトに存在している必要があります。
TEXT2
: プロンプトに含める指示のテキスト。 例:city: Beijing, Landmark: Forbidden City
FILE_URI3
: プロンプトに含めるファイルの URI または URL。指定できる値は以下のとおりです。- Cloud Storage バケット URI: オブジェクトは一般公開されているか、リクエストを送信するプロジェクトと同じ Google Cloud プロジェクトに存在している必要があります。
gemini-2.0-flash
とgemini-2.0-flash-lite
の場合、サイズの上限は 2 GB です。 - HTTP URL: ファイルの URL は一般公開されている必要があります。リクエストごとに 1 つの動画ファイル、1 つの音声ファイル、最大 10 個の画像ファイルを指定できます。音声ファイル、動画ファイル、ドキュメントのサイズは 15 MB 以下にする必要があります。
- YouTube 動画の URL: YouTube 動画は、 Google Cloud コンソールのログインに使用したアカウントが所有しているか、公開されている必要があります。リクエストごとにサポートされる YouTube 動画の URL は 1 つだけです。
fileURI
を指定する場合は、ファイルのメディアタイプ(mimeType
)も指定する必要があります。VPC Service Controls が有効になっている場合、fileURI
のメディア ファイル URL の指定はサポートされていません。Cloud Storage に画像ファイルがない場合は、MIME タイプが
image/png
の一般公開ファイルgs://cloud-samples-data/vertex-ai/llm/prompts/landmark3.png
を使用できます。この画像を表示するには、サンプルの画像ファイルを開きます。- Cloud Storage バケット URI: オブジェクトは一般公開されているか、リクエストを送信するプロジェクトと同じ Google Cloud プロジェクトに存在している必要があります。
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json
という名前のファイルに保存します。ターミナルで次のコマンドを実行して、このファイルを現在のディレクトリに作成または上書きします。
cat > request.json << 'EOF' { "contents": { "role": "USER", "parts": [ { "fileData": { "fileUri": "FILE_URI1", "mimeType": "MIME_TYPE" } }, { "text": "TEXT1" }, { "fileData": { "fileUri": "FILE_URI2", "mimeType": "MIME_TYPE" } }, { "text": "TEXT2" }, { "fileData": { "fileUri": "FILE_URI3", "mimeType": "MIME_TYPE" } } ] } } EOF
その後、次のコマンドを実行して REST リクエストを送信します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-2.5-flash:generateContent"
PowerShell
リクエスト本文を request.json
という名前のファイルに保存します。ターミナルで次のコマンドを実行して、このファイルを現在のディレクトリに作成または上書きします。
@' { "contents": { "role": "USER", "parts": [ { "fileData": { "fileUri": "FILE_URI1", "mimeType": "MIME_TYPE" } }, { "text": "TEXT1" }, { "fileData": { "fileUri": "FILE_URI2", "mimeType": "MIME_TYPE" } }, { "text": "TEXT2" }, { "fileData": { "fileUri": "FILE_URI3", "mimeType": "MIME_TYPE" } } ] } } '@ | Out-File -FilePath request.json -Encoding utf8
その後、次のコマンドを実行して REST リクエストを送信します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-2.5-flash:generateContent" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
このサンプルの URL にある次の点に注意してください。generateContent
メソッドを使用して、レスポンスが完全に生成された後に返されるようにリクエストします。ユーザーが認識するレイテンシを短縮するには、streamGenerateContent
メソッドを使用して、生成時にレスポンスをストリーミングします。- マルチモーダル モデル ID は、URL の末尾のメソッドの前に配置されます(例:
gemini-2.0-flash
)。このサンプルでは、他のモデルもサポートされている場合があります。
オプションのモデル パラメータを設定する
各モデルには、設定可能な一連のオプション パラメータがあります。詳細については、コンテンツ生成パラメータをご覧ください。
画像のトークン化
画像のトークンの計算方法は次のとおりです。
- 画像の両方の寸法が 384 ピクセル以下の場合、258 個のトークンが使用されます。
- 画像の 1 つの寸法が 384 ピクセルを超える場合、画像はタイルに切り抜かれます。各タイルサイズは、デフォルトで最小の寸法(幅または高さ)を 1.5 で割った値になります。必要に応じて、各タイルは 256 ピクセル以上、768 ピクセル以下になるように調整されます。各タイルは 768x768 にサイズ変更され、258 個のトークンを使用します。
ベスト プラクティス
画像を使用する場合は、最適な結果を得るために、次のベスト プラクティスと情報を使用してください。
- 画像内のテキストを検出する必要がある場合は、1 つの画像を使用するプロンプトのほうが、複数の画像を使用するプロンプトよりも適切な結果が得られます。
- プロンプトに 1 つの画像が含まれている場合は、リクエスト内でテキスト プロンプトの前に画像を配置します。
- プロンプトに複数の画像が含まれており、これらの画像をプロンプトの後半で参照する場合、またはモデル レスポンスでモデルが参照する場合は、各画像の前にインデックスを付けると、より良い結果が得られる可能性があります。インデックスには
またはa
b
c
を使用します。プロンプトでインデックス付き画像を使用する例を次に示します。image 1
image 2
image 3
image 1
image 2 image 3 Write a blogpost about my day using image 1 and image 2. Then, give me ideas for tomorrow based on image 3. - 解像度の高い画像を使用すると、より良い結果が得られます。
- プロンプトにいくつかの例を含めます。
- 画像を適切な向きに回転してから、プロンプトに追加します。
- ぼやけた画像は使用しないでください。
制限事項
Gemini マルチモーダル モデルは多くのマルチモーダル ユースケースに対応していますが、モデルの制限事項も理解しておく必要があります。
- コンテンツの管理: Google の安全に関するポリシーに違反する画像に対する回答は拒否されます。
- 空間推論: 画像内のテキストやオブジェクトの位置を正確に特定することはできません。オブジェクトの数も推定値しか返されない場合があります。
- 医療目的での使用: 医療画像(X 線、CT スキャンなど)の解釈や医学的なアドバイスの提供には適していません。
- 人物認識: このモデルは、画像内の著名人以外の人物を特定することを目的としたものではありません。
- 精度: 低品質、回転、極端に低解像度の画像を解釈する際に、ハルシネーションや誤りが発生する可能性があります。また、画像ドキュメント内の手書きテキストを解釈する際に、ハルシネーションが発生することもあります。
次のステップ
- Gemini マルチモーダル モデルで構築を開始する - 新規のお客様は Google Cloud クレジット $300 分を無料で利用して、Gemini の機能をお試しいただけます。
- チャット プロンプト リクエストの送信方法を学習する。
- 責任ある AI のベスト プラクティスと Vertex AI の安全フィルタについて学習する。