ドキュメントを理解する

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 ストレージ バケットに保存されているドキュメント ファイルを参照する必要があります。詳細については、データを保存するをご覧ください。

次のステップ