理解文件

Gemini 可以回覆文件相關提示。你可以在 Gemini 要求中加入文件,讓 Gemini 瞭解文件內容,進而執行相關工作。

文件理解是 Gemini 的多模態輸入內容之一,可將文字與媒體檔案結合。

如要進一步瞭解如何使用 Gemini 瞭解文件,以及傳送 API 要求的逐步操作說明,請參閱「傳送多模態提示」。

含文件的提示規格

你可以在 Gemini 的要求中加入文件檔案,Gemini 要求有下列文件數量上限:

  • 每項要求的檔案數量上限:100 個
  • 每個檔案的頁數上限:100
  • 每個檔案的大小上限:50 MB

以下是您可以在單一要求中提供的部分上限範例 (Gemini 可以在要求中處理最多 100 個網頁):

  • 100 個單頁檔案
  • 十個 10 頁的檔案
  • 一個 100 頁的檔案

文件必須採用下列其中一種支援的 MIME 類型:

  • CSS:text/css
  • CSV:text/csv
  • HTML:text/html
  • JS:text/javascriptapplication/x-javascript
  • MD:text/md
  • PDF:application/pdf
  • PY:text/x-pythonapplication/x-python
  • RTF:text/rtf
  • TXT:text/plain
  • XML:text/xml

Gemini 對文件設有下列規則:

  • PDF 會視為圖片,因此 PDF 的單一頁面會視為一張圖片。 提示中的頁數上限取決於模型可支援的圖片數量。
  • 系統會以與圖片相同的方式,將 PDF 的每個頁面轉換為權杖。
  • 純文字文件會以文字形式進行權杖化。
  • 如果提示只包含一個 PDF,請在要求中將 PDF 放在文字提示之前。
  • 如果文件很長,建議您將其拆成多個 PDF 檔案,再進行處理。

您可以在 REST API 中使用 Chat Completions 端點,並使用 HTTP 用戶端。您可以將文件以 base64 編碼檔案的形式,做為內嵌資料提供給提示要求,或上傳文件檔案至儲存空間值區提出提示要求。

如要進一步瞭解文件最佳做法限制,請參閱 Google Cloud 說明文件。

如要進一步瞭解 OpenAI,以及 Gemini 在 Google Distributed Cloud (GDC) Air-Gapped 中實作的 Chat Completions 端點,請參閱 https://platform.openai.com/docs/api-reference/chat

根據提示解讀文件

下列範例顯示 Gemini Chat Completions API 要求,可使用 curl 從文件輸入內容生成文字。

傳送內嵌資料要求

以 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}"

在要求中傳送文件網址

上傳文件檔案至儲存空間 bucket ,再提出提示要求。API 請求包含儲存空間 bucket 中文件檔案的 document_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:儲存空間值區中文件網址的路徑。文件網址必須參照儲存在 GDC 儲存空間值區中的文件檔案。詳情請參閱儲存資料

後續步驟