Gemini リクエストにドキュメント(PDF ファイルと TXT ファイル)を追加して、追加したドキュメントの内容を理解するタスクを実行できます。このページでは、 Google Cloud コンソールと Vertex AI API を使用して、Vertex AI で Gemini へのリクエストに PDF を追加する方法について説明します。
サポートされているモデル
次の表に、ドキュメント理解をサポートするモデルを示します。
モデル | メディアの詳細 | MIME タイプ |
---|---|---|
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 |
|
|
1 これは、プロジェクトのすべてのリクエストのドキュメント入力から取得された最大 TPM です。他のモダリティでも最大 TPM を使用します。
割り当て指標は generate_content_document_input_per_base_model_id_and_resolution
です。
Gemini モデルでサポートされている言語の一覧については、モデル情報の Google モデルをご覧ください。マルチモーダル プロンプトの設計方法について詳しくは、マルチモーダル プロンプトを設計するをご覧ください。モバイルアプリやウェブアプリから Gemini を直接使用することをお考えの場合は、Swift、Android、ウェブ、Flutter、Unity アプリの Firebase AI Logic クライアント SDK をご覧ください。
リクエストにドキュメントを追加する
次のコードサンプルでは、プロンプト リクエストに PDF を含める方法を示します。この PDF サンプルは、すべての Gemini マルチモーダル モデルで使用できます。
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
REST
環境をセットアップしたら、REST を使用してテキスト プロンプトをテストできます。次のサンプルは、パブリッシャー モデルのエンドポイントにリクエストを送信します。
リクエストのデータを使用する前に、次のように置き換えます。
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 に PDF ファイルがない場合は、次の一般公開ファイル(MIME タイプが
application/pdf
のgs://cloud-samples-data/generative-ai/pdf/2403.05530.pdf
)を使用できます。この PDF を表示するには、サンプル PDF ファイルを開きます。- 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
: プロンプトに含める指示のテキスト。例:You are a very professional document summarization specialist. Please summarize the given document.
リクエストを送信するには、次のいずれかのオプションを選択します。
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-2.0-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-2.0-flash:generateContent" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
このサンプルの URL にある次の点に注意してください。generateContent
メソッドを使用して、レスポンスが完全に生成された後に返されるようにリクエストします。ユーザーが認識するレイテンシを短縮するには、streamGenerateContent
メソッドを使用して、生成時にレスポンスをストリーミングします。- マルチモーダル モデル ID は、URL の末尾のメソッドの前に配置されます(例:
gemini-2.0-flash
)。このサンプルでは、他のモデルもサポートされている場合があります。
コンソール
Google Cloud コンソールでマルチモーダル プロンプトを送信する手順は次のとおりです。Google Cloud コンソールの [Vertex AI] セクションで、[Vertex AI Studio] ページに移動します。
[プロンプトを作成] をクリックします。
省略可: モデルとパラメータを構成します。
- モデル: モデルを選択します。
省略可: 詳細パラメータを構成するには、[詳細] をクリックして、次のように構成します。
クリックして [高度な構成] を開く
Top-K: スライダーまたはテキスト ボックスを使用して、トップ K の値を入力します。
Top-K は、モデルが出力用にトークンを選択する方法を変更します。Top-K が1
の場合、次に選択されるトークンは、モデルの語彙内のすべてのトークンで最も確率の高いものであることになります(グリーディ デコードとも呼ばれます)。Top-K が3
の場合は、最も確率が高い上位 3 つのトークンから次のトークン選択されることになります(温度を使用します)。トークン選択のそれぞれのステップで、最も高い確率を持つ Top-K のトークンがサンプリングされます。その後、トークンは Top-P に基づいてさらにフィルタされ、最終的なトークンは温度サンプリングを使って選択されます。
ランダムなレスポンスを減らしたい場合は小さい値を、ランダムなレスポンスを増やしたい場合は大きい値を指定します。
- Top-P: スライダーまたはテキスト ボックスを使用して、Top-P の値を入力します。確率の合計が Top-P の値と等しくなるまで、最も確率が高いものから最も確率が低いものの順に、トークンが選択されます。結果を最小にするには、Top-P を
0
に設定します。 - 最大レスポンス数: スライダーまたはテキスト ボックスを使用して、生成するレスポンスの数の値を入力します。
- ストリーミング レスポンス: 有効にすると、レスポンスが生成されたときに出力されます。
- 安全フィルタのしきい値: 有害なおそれのあるレスポンスが表示される可能性のしきい値を選択します。
- 根拠づけを有効にする: マルチモーダル プロンプトでは、グラウンディングはサポートされていません。
- リージョン: 使用するリージョンを選択します。
- Temperature: スライダーまたはテキスト ボックスを使用して、Temperature の値を入力します。
The temperature is used for sampling during response generation, which occurs when
andtopP
topK
are applied. Temperature controls the degree of randomness in token selection. Lower temperatures are good for prompts that require a less open-ended or creative response, while higher temperatures can lead to more diverse or creative results. A temperature of0
means that the highest probability tokens are always selected. In this case, responses for a given prompt are mostly deterministic, but a small amount of variation is still possible.If the model returns a response that's too generic, too short, or the model gives a fallback response, try increasing the temperature.
</li> <li>**Output token limit**: Use the slider or textbox to enter a value for the max output limit. Maximum number of tokens that can be generated in the response. A token is approximately four characters. 100 tokens correspond to roughly 60-80 words.Specify a lower value for shorter responses and a higher value for potentially longer responses.
</li> <li>**Add stop sequence**: Optional. Enter a stop sequence, which is a series of characters that includes spaces. If the model encounters a stop sequence, the response generation stops. The stop sequence isn't included in the response, and you can add up to five stop sequences.</li> </ul>
[メディアを挿入] をクリックし、ファイルのソースを選択します。
アップロード
アップロードするファイルを選択して [開く] をクリックします。
URL
使用するファイルの URL を入力し、[挿入] をクリックします。
Cloud Storage
バケットを選択してから、バケット内のインポートするファイルを選択し、[選択] をクリックします。
Google ドライブ
- このオプションを初めて選択するときに、アカウントを選択して Vertex AI Studio がアカウントにアクセスできるように同意します。合計サイズが最大 10 MB の複数のファイルをアップロードできます。1 つのファイルのサイズが 7 MB を超えないようにしてください。
- 追加するファイルをクリックします。
[選択] をクリックします。
ファイルのサムネイルが [プロンプト] ペインに表示されます。トークンの合計数も表示されます。プロンプト データがトークンの上限を超えると、トークンは切り捨てられ、データの処理には含まれません。
[プロンプト] ペインにテキスト プロンプトを入力します。
省略可: [テキストのトークン ID] と [トークン ID] を表示するには、[プロンプト] ペインで [トークン数] をクリックします。
[送信] をクリックします。
省略可: プロンプトを [マイプロンプト] に保存するには、[
保存] をクリックします。省略可: プロンプトの Python コードまたは curl コマンドを取得するには、
[コードで構築] > [コードを取得] をクリックします。
オプションのモデル パラメータを設定する
各モデルには、設定可能な一連のオプション パラメータがあります。詳細については、コンテンツ生成パラメータをご覧ください。
ドキュメントのトークン化
PDF のトークン化
PDF は画像として扱われるため、PDF の各ページは画像と同じ方法でトークン化されます。
また、PDF の費用は Gemini の画像処理の料金に準じます。たとえば、Gemini API 呼び出しで 2 ページの PDF を含めると、入力として 2 つの画像を処理する場合の料金が発生します。
PDF に関するベスト プラクティス
PDF を使用する場合は、次のベスト プラクティスと情報を参考にしてください。
- プロンプトに 1 つの PDF が含まれている場合は、リクエスト内でテキスト プロンプトの前に PDF を配置します。
- ドキュメントが長い場合は、複数の PDF に分割して処理することを検討してください。
- スキャンした画像のテキストではなく、テキストとしてレンダリングされたテキストを含む PDF を使用します。この形式では、テキストが機械で判読可能になるため、スキャンした画像を PDF にした場合よりも、モデルによる編集、検索、操作が容易になります。これにより、契約書など、テキストの多いドキュメントを扱う際に最適な結果が得られます。
制限事項
Gemini マルチモーダル モデルは多くのマルチモーダル ユースケースに対応していますが、モデルの制限事項も理解しておく必要があります。
- 空間推論: PDF 内のテキストやオブジェクトの位置を正確に特定することはできません。オブジェクトの数も推定値しか返されない場合があります。
- 精度: PDF ドキュメント内の手書きテキストを解釈する際に、ハルシネーションが発生する可能性があります。
次のステップ
- Gemini マルチモーダル モデルで構築を開始する - 新規のお客様は Google Cloud クレジット $300 分を無料で利用して、Gemini の機能をお試しいただけます。
- チャット プロンプト リクエストの送信方法を学習する。
- 責任ある AI のベスト プラクティスと Vertex AI の安全フィルタについて学習する。