Gemini は、ドキュメントに関するプロンプトに応答できます。Gemini リクエストにドキュメントを追加して、追加したドキュメントの内容を理解するタスクを実行できます。
ドキュメント理解は、テキストとメディア ファイルを組み合わせた Gemini のマルチモーダル入力の 1 つです。
Gemini を使用したドキュメント理解の詳細と、API リクエストを送信する手順については、マルチモーダル プロンプトを送信するをご覧ください。
ドキュメントを含むプロンプトの仕様
Gemini へのリクエストにドキュメント ファイルを追加できます。Gemini リクエストには、次のドキュメントの上限が適用されます。
- リクエストあたりの最大ファイル数: 100
- ファイルあたりの最大ページ数: 100
- ファイルあたりの最大サイズ: 50 MB
Gemini を使用して 1 回のリクエストで指定できる最大値の例を次に示します(Gemini は 1 回のリクエストで合計 100 ページを処理できます)。
- 単一ページのファイル 100 個
- 10 ページのファイル 10 個
- 100 ページのファイル 1 個
ドキュメントは、次のいずれかのサポートされている MIME タイプである必要があります。
- CSS:
text/css - CSV:
text/csv - HTML:
text/html - JS:
text/javascriptまたはapplication/x-javascript - MD:
text/md - PDF:
application/pdf - PY:
text/x-pythonまたはapplication/x-python - RTF:
text/rtf - TXT:
text/plain - XML:
text/xml
Gemini では、ドキュメントに次のルールが適用されます。
- PDF は画像として扱われるため、PDF の 1 ページは 1 つの画像として扱われます。プロンプトで許可されるページ数は、モデルがサポートできる画像の数に制限されます。
- PDF の各ページは画像と同じ方法でトークン化されます。
- 書式なしテキストのドキュメントはテキストとしてトークン化されます。
- プロンプトに 1 つの PDF が含まれている場合は、リクエスト内でテキスト プロンプトの前に PDF を配置します。
- ドキュメントが長い場合は、複数の PDF に分割して処理することを検討してください。
REST API の Chat Completions エンドポイントを使用して、HTTP クライアントを使用できます。ドキュメントは、Base64 エンコード ファイルとしてプロンプト リクエストにインライン データとして指定するか、プロンプト リクエストを行う前にストレージ バケットにドキュメント ファイルをアップロードできます。
Google Cloud ドキュメントのベスト プラクティスと制限事項について詳しくは、ドキュメントをご覧ください。
OpenAI と、Gemini が Google Distributed Cloud(GDC)エアギャップで実装する Chat Completions エンドポイントの詳細については、https://platform.openai.com/docs/api-reference/chat をご覧ください。
プロンプトからドキュメントを理解する
次の例は、curl を使用してドキュメント入力からテキストを生成する Gemini Chat Completions API リクエストを示しています。
インライン データ リクエストを送信する
base64 エンコードされたファイルから、プロンプト リクエストにインライン データとしてドキュメントを提供します。API リクエストには、Base64 でエンコードされたドキュメントの input_document フィールドが含まれています。次のサンプルは、Base64 でエンコードされたドキュメント リクエストを送信する方法を示しています。
curl \
-X POST "https://ENDPOINT:443/v1/projects/PROJECT/locations/PROJECT/chat/completions" \
-H "Content-Type: application/json; charset=utf-8" \
-H "Authorization: Bearer $(gdcloud auth print-identity-token)" \
-d '{
"model_id": "MODEL_ID",
"messages": [
{
"role": "user",
"content": [
{
"type": "input_document",
"input_document": {
"data": BASE64_DATA,
# Valid formats are css, csv, html, js, md, pdf, py, rtf, txt, or xml
"format": "pdf"
}
}
]
}
],
}'
次のように置き換えます。
ENDPOINT: 組織で使用する API エンドポイント。PROJECT: プロジェクト ID。MODEL_ID: レスポンスを生成するモデルのエンドポイント ID。BASE64_DATA: ドキュメント ファイルの Base64 エンコードされたデータ。Base64 エンコードされたデータには、データ URI スキーム(RFC 2397)の接頭辞を付ける必要があります。したがって、base64 でエンコードされたデータのdataフィールドの形式は、たとえば"data": f"data:application/pdf;base64,{base64_document}"です。
リクエストでドキュメントの URL を送信する
プロンプト リクエストを行う前に、ドキュメント ファイルをストレージ バケットにアップロードします。API リクエストには、ストレージ バケット内のドキュメント ファイルの document_url フィールドが含まれています。次のサンプルは、ドキュメント URL リクエストを送信する方法を示しています。
curl \
-X POST "https://ENDPOINT:443/v1/projects/PROJECT/locations/PROJECT/chat/completions" \
-H "Content-Type: application/json; charset=utf-8" \
-H "Authorization: Bearer $(gdcloud auth print-identity-token)" \
-d '{
"model_id": "MODEL_ID",
"messages": [
{
"role": "user",
"content": [
{
"type": "document_url",
"document_url": {
"url": "DOC_URL",
}
}
]
}
],
}'
次のように置き換えます。
ENDPOINT: 組織で使用する API エンドポイント。PROJECT: プロジェクト ID。MODEL_ID: レスポンスを生成するモデルのエンドポイント ID。DOC_URL: ストレージ バケット内のドキュメント URL のパス。ドキュメント URL は、GDC ストレージ バケットに保存されているドキュメント ファイルを参照する必要があります。詳細については、データを保存するをご覧ください。