理解文档

Gemini 可以回答与文档相关的提示。您可以在 Gemini 请求中添加文档,以执行涉及理解所含文档内容的任务。

文档理解是 Gemini 的一种多模态输入,可将文本与媒体文件相结合。

如需详细了解如何使用 Gemini 进行文档理解,以及发送 API 请求的分步说明,请参阅发送多模态提示

包含文档的提示的规范

您可以在向 Gemini 发送的请求中添加文档文件。以下文档数量上限适用于 Gemini 请求:

  • 每个请求的文件数量上限:100
  • 每个文件的页数上限:100
  • 每个文件的大小上限:50 MB

以下是使用 Gemini(可在单个请求中处理总共 100 页)时在单个请求中可提供的部分上限示例:

  • 100 个单页文件
  • 10 个 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) 隔离环境中实现的 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}"

在请求中发送文档网址

上传文档文件到存储桶,然后发出提示请求。API 请求包含存储分区中文档文件的 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 存储桶中的文档文件。如需了解详情,请参阅存储数据

后续步骤