文档理解

Gemini 模型可以处理 PDF 格式的文档,并使用原生视觉功能来理解整个文档的上下文。这不仅仅是提取文本,还让 Gemini 能够:

  • 分析和解读内容,包括文本、图片、图表、图表和表格,即使是长达 1000 页的文档也不例外。
  • 将信息提取为结构化输出格式。
  • 根据文档中的视觉元素和文本元素进行总结和回答问题。
  • 转录文档内容(例如转换为 HTML),保留布局和格式,以便在下游应用中使用。

您还可以通过相同的方式传递非 PDF 文档,但 Gemini 会将它们视为普通文本,这样会消除图表或格式等上下文。

以内嵌方式传递 PDF 数据

您可以在请求中以内嵌方式传递 PDF 数据。这最适合较小的文档或临时处理,在这种情况下,您无需在后续请求中引用该文件。我们建议您对需要在多轮互动中引用的较大文档使用 Files API ,以 缩短请求延迟时间和减少带宽使用量。

以下示例展示了如何以内嵌方式传递 PDF 数据:

Python

from google import genai
import base64

client = genai.Client()

with open('path/to/document.pdf', 'rb') as f:
    pdf_bytes = f.read()

interaction = client.interactions.create(
    model="gemini-3.6-flash",
    input=[
        {
            "type": "document",
            "data": base64.b64encode(pdf_bytes).decode('utf-8'),
            "mime_type": "application/pdf"
        },
        {"type": "text", "text": "Summarize this document"}
    ]
)

print(interaction.output_text)

JavaScript

import { GoogleGenAI } from "@google/genai";
import * as fs from "node:fs";

const ai = new GoogleGenAI({});

async function main() {
    const pdfData = fs.readFileSync("path/to/document.pdf", {
        encoding: "base64"
    });

    const interaction = await ai.interactions.create({
        model: "gemini-3.6-flash",
        input: [
            { type: "text", text: "Summarize this document" },
            {
                type: "document",
                data: pdfData,
                mime_type: "application/pdf"
            }
        ]
    });
    console.log(interaction.output_text);
}

main();

REST

PDF_PATH="path/to/document.pdf"

if [[ "$(base64 --version 2>&1)" = *"FreeBSD"* ]]