您可以在 Gemini 请求中添加文档(PDF 和 TXT 文件),以执行涉及理解所含文档内容的任务。本页面介绍了如何使用 Google Cloud 控制台和 Agent Platform API,在 Gemini Enterprise Agent Platform 中向发送给 Gemini 的请求添加 PDF。
支持的模型
下表列出了支持文档理解的模型:
| 模型 | 媒体详情 | MIME 类型 |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1这是项目中所有请求的文档输入的 TPM 上限。对于其他模态,该 TPM 上限也适用。
配额指标为 generate_content_document_input_per_base_model_id_and_resolution。
如需查看 Gemini 模型支持的语言列表,请参阅 Google 模型的模型信息。如需详细了解如何设计多模态提示,请参阅设计多模态提示。如果您正在寻找一种直接在移动应用和 Web 应用中使用 Gemini 的方法,请参阅适用于 Swift、Android、Web、Flutter 和 Unity 应用的 Firebase AI Logic 客户端 SDK。
API 端点和上下文窗口限制
标准 Gemini 3 及更高版本的模型在 generateContent 和 Interactions API 中,每个请求最多可接受 3,000 个图片和 PDF 文件(总和)、1,000 个音频文件或 10 个视频(如果包含纯文本文件,则多模态文件总数最多为 6,500 个)。未迁移的 Gemini 2.5 端点和 gemini-3.1-pro-preview-customtools 会强制执行旧版文件大小、PDF 页面(1,000 页)以及 HTTP 或 HTTPS 网址数量限制。实际请求限制还取决于 API 端点、文件来源和上下文窗口:
- Cloud Storage 文件的 Interactions API URI 限制:Interactions API 请求支持在每个模型互动请求中最多使用 100 个不同的 Cloud Storage (
gs://) URI,包括通过previous_interaction_id从先前对话轮次中继承的 URI。generateContent请求支持gs://URI,但不得超过模型项限制。 - 文件来源、内嵌部分和请求载荷限制:从 Cloud Storage 引用的单个文件不能超过 2 GiB 减去 500 KiB,从公开 HTTP 或 HTTPS 网址引用的文件不能超过 15 MiB。在
generateContent和streamGenerateContent上,对于标准 Gemini 3 及更高版本的模型,每个内嵌附件 (inline_data) 的大小不得超过 256 MB,并且压缩后的 HTTP 或 gRPC 请求载荷总大小不得超过 500 MiB(base64 编码会增加大约 33% 的大小开销)。在 Interactions API 上,对于同步或流式请求,压缩后的 HTTP 请求载荷不能超过 256 MiB;当service_tier设置为deferred(这要求background和store均为true)时,未压缩的请求不能超过 9.75 MiB。 - 上下文窗口:请求中所有多模态输入和文本的词元总数不能超过模型的输入词元上限(标准 Gemini 3 及更高版本模型为 1,048,576 个词元)。
在请求中添加文档
以下代码示例展示了如何在提示请求中添加 PDF 文件。此 PDF 文件示例适用于所有 Gemini 多模态模型。
Python
安装
pip install --upgrade google-genai
如需了解详情,请参阅 SDK 参考文档。
设置环境变量以将 Google Gen AI SDK 与 Vertex AI 搭配使用:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_ENTERPRISE=True
Go
了解如何安装或更新 Go。
如需了解详情,请参阅 SDK 参考文档。
设置环境变量以将 Google Gen AI SDK 与 Vertex AI 搭配使用:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_ENTERPRISE=True
Java
了解如何安装或更新 Java。
如需了解详情,请参阅 SDK 参考文档。
设置环境变量以将 Google Gen AI SDK 与 Vertex AI 搭配使用:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_ENTERPRISE=True
Node.js
安装
npm install @google/genai
如需了解详情,请参阅 SDK 参考文档。
设置环境变量以将 Google Gen AI SDK 与 Vertex AI 搭配使用:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_ENTERPRISE=True
C#
了解如何安装或更新 C#。
如需了解详情,请参阅 SDK 参考文档。
设置环境变量以将 Google Gen AI SDK 与 Vertex AI 搭配使用:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_ENTERPRISE=True
REST
设置您的环境后,您可以使用 REST 测试文本提示词。以下示例会向发布方模型端点发送请求。
在使用任何请求数据之前,请先进行以下替换:
PROJECT_ID:您的项目 ID。 。FILE_URI:要包含在提示中的文件的 URI 或网址。可接受的值包括:- Cloud Storage 存储桶 URI:对象必须可公开读取,或者位于发送请求的同一 Google Cloud 项目中。
- HTTP 网址:文件网址必须可公开读取,且每个文件的大小不得超过 15 MiB。
标准 Gemini 3 及更高版本的模型每次请求最多可接受 3,000 个图片和 PDF 文件(总和)、1,000 个音频文件或 10 个视频(如果包含纯文本文件,则总共最多可接受 6,500 个文件)。未迁移的 Gemini 2.5 端点和
gemini-3.1-pro-preview-customtools将 HTTP 或 HTTPS 网址限制为每个请求 10 张图片、1 个音频文件或 1 个视频。 - YouTube 视频网址:YouTube 视频必须由您用于登录 Google Cloud 控制台的账号所拥有,或者是公开的。每个请求仅支持一个 YouTube 视频网址。
指定
fileURI时,您还必须指定文件的媒体类型 (mimeType)。 如果启用了 VPC Service Controls,则不支持为fileURI指定媒体文件网址。如果您在 Cloud Storage 中没有 PDF 文件,则可以使用以下公开提供的文件:
gs://cloud-samples-data/generative-ai/pdf/2403.05530.pdf,MIME 类型为application/pdf。如需查看此 PDF,请打开示例 PDF 文件。MIME_TYPE:在data或fileUri字段中指定的文件的媒体类型。可接受的值包括:点击即可展开 MIME 类型
application/pdfaudio/mpegaudio/mp3audio/wavimage/pngimage/jpegimage/webptext/plainvideo/movvideo/mpegvideo/mp4video/mpgvideo/avivideo/wmvvideo/mpegpsvideo/flv
TEXT:要包含在提示中的文本说明。 例如You are a very professional document summarization specialist. Please summarize the given document.
如需发送请求,请选择以下方式之一:
curl
将请求正文保存在名为 request.json 的文件中。在终端中运行以下命令,在当前目录中创建或覆盖此文件:
cat > request.json << 'EOF'
{
"contents": {
"role": "USER",
"parts": [
{
"fileData": {
"fileUri": "FILE_URI",
"mimeType": "MIME_TYPE"
}
},
{
"text": "TEXT"
}
]
}
}
EOF然后,执行以下命令以发送 REST 请求:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-3.5-flash:generateContent"
PowerShell
将请求正文保存在名为 request.json 的文件中。在终端中运行以下命令,在当前目录中创建或覆盖此文件:
@'
{
"contents": {
"role": "USER",
"parts": [
{
"fileData": {
"fileUri": "FILE_URI",
"mimeType": "MIME_TYPE"
}
},
{
"text": "TEXT"
}
]
}
}
'@ | Out-File -FilePath request.json -Encoding utf8然后,执行以下命令以发送 REST 请求:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-3.5-flash:generateContent" | Select-Object -Expand Content
您应该会收到类似以下内容的 JSON 响应:
请注意此示例网址中的以下内容:- 使用
generateContent方法请求在回答完全生成后返回回答。 为了降低真人观众对于延迟的感知度,请使用streamGenerateContent方法在生成回答时流式传输回答。 - 多模态模型 ID 位于网址末尾且位于方法之前(例如
gemini-3.5-flash)。此示例可能还支持其他模型。 - 当您使用区域级 API 端点(例如
us-central1)时,端点网址中的区域决定了请求的处理位置。资源路径中任何冲突的位置都会被忽略。
控制台
如需使用 Google Cloud 控制台发送多模态提示,请执行以下操作:在 Google Cloud 控制台的“智能体平台”部分中,前往 Agent Studio 页面。
点击创建提示。
可选:配置模型和参数:
- 模型:选择一个模型。
可选:如需配置高级参数,请点击高级,然后按如下方式进行配置:
点击即可展开高级配置
Top-K:使用滑块或文本框输入 top-K 值。
top-K 可更改模型选择输出词元的方式。如果 top-K 设为1,表示所选词元是模型词汇表的所有词元中概率最高的词元(也称为贪心解码)。如果 top-K 设为3,则表示系统将从 3 个概率最高的词元(通过温度确定)中选择下一个词元。在每个词元选择步骤中,系统都会对概率最高的 top-K 词元进行采样。然后,系统会根据 top-P 进一步过滤词元,并使用温度采样选择最终的词元。
指定较低的值可获得随机程度较低的回答,指定较高的值可获得随机程度较高的回答。
- Top-P:使用滑块或文本框输入 top-P 值。
系统会按照概率从最高到最低的顺序选择词元,直到所选词元的概率总和等于 top-P 的值。如需获得数量最小的变量结果,请将 top-P 设置为
0。 - 回答数量上限:使用滑块或文本框输入要生成的回答数量的值。
- 流式回答:启用此选项可在生成回答时输出回答。
- 安全过滤器阈值:选择您看到可能有害的回答的可能性的阈值。
- 启用接地:多模态提示不支持接地。
- 区域:选择您要使用的区域。
- 温度:使用滑块或文本框输入温度值。
The temperature is used for sampling during response generation, which occurs when/li /ultopPandtopKare applied. Temperature controls the degree of randomness in token selection. Lower temperatures are good for prompts that require a less open-ended or creative response, while higher temperatures can lead to more diverse or creative results. A temperature of0means that the highest probability tokens are always selected. In this case, responses for a given prompt are mostly deterministic, but a small amount of variation is still possible.If the model returns a response that's too generic, too short, or the model gives a fallback response, try increasing the temperature. If the model enters infinite generation, increasing the temperature to at le
last0.1 may lead to improved resuts.1.0 is the recommended starting value for temperatu<re.> /l<i<>/span> li**Output token limit**: Use the slider or textbox to enter a value for the max output limit. Maximum number of tokens that can be generated in the response. A token is approximately four characters. 100 tokens correspond to roughly 60-80 words.
Specify a lower value for shorter responses and a higher value for potentially longer respons<es.> /l<i<>/span> li**Add stop sequence**: Optional. Enter a stop sequence, which is a series of characters that includes spaces. If the model encounters a stop sequence, the response generation stops. The stop sequence isn't included in the response, and you can add up to five stop se<que>n<ces>.
点击插入媒体,然后为文件选择一个来源。
上传
选择您要上传的文件,然后点击打开。
通过网址
输入要使用的文件的网址,然后点击插入。
Cloud Storage
选择存储桶,接着从存储桶选择您要导入的文件,然后点击选择。
Google 云端硬盘
- 选择一个账号,并在您首次选择此选项时同意 Agent Studio 访问您的账号。您可以上传多个文件,但总大小不得超过 10 MB。单个文件的大小不能超过 7 MB。
- 点击要添加的文件。
点击选择。
文件缩略图会显示在提示窗格中。 系统还会显示 token 总数。如果提示数据超过 token 限制,则 token 会被截断,并且不会用于处理数据。
在提示窗格中输入文本提示。
可选:如需查看 Token ID 到文本和 Token ID,请点击提示窗格中的 token 数量。
点击提交。
可选:如需将提示保存到我的提示,请点击 保存。
可选:如需获取提示对应的 Python 代码或 curl 命令,请点击 使用代码构建 > 获取代码。
设置可选模型参数
每个模型都有一组可设置的可选参数。如需了解详情,请参阅内容生成参数。
文档 token 化
在 Gemini 3 模型中,文档词元化使用可变序列长度,这取代了之前模型中使用的平移和扫描方法,从而提高了质量并缩短了延迟时间。
您可以为 PDF 输入指定媒体分辨率,这会影响文档如何进行 token 化以及每个文档使用多少个 token。您可以在 generationConfig 中设置 media_resolution 以应用于请求中的所有媒体,也可以为各个媒体部分设置它,这会覆盖顶级设置。
Gemini 3 模型支持以下分辨率:
MEDIA_RESOLUTION_HIGH:1120 个 token(针对 PDF)MEDIA_RESOLUTION_MEDIUM:560 个 token(针对 PDF)MEDIA_RESOLUTION_LOW:PDF 每页 280 个 tokenMEDIA_RESOLUTION_UNSPECIFIED:560 个(针对 PDF)(默认值)
此代码示例演示了如何调整 media_resolution:
GenerateContent API
from google import genai from google.genai import types client = genai.Client() response = client.models.generate_content( model="gemini-3.1-pro-preview", contents=[ types.Part( file_data=types.FileData( file_uri="gs://cloud-samples-data/generative-ai/image/a-man-and-a-dog.png", mime_type="image/jpeg", ), media_resolution=types.PartMediaResolution( level=types.PartMediaResolutionLevel.MEDIA_RESOLUTION_HIGH ), ), types.Part( file_data=types.FileData( file_uri="gs://cloud-samples-data/generative-ai/video/behind_the_scenes_pixel.mp4", mime_type="video/mp4", ), media_resolution=types.PartMediaResolution( level=types.PartMediaResolutionLevel.MEDIA_RESOLUTION_LOW ), ), "When does the image appear in the video? What is the context?", ], ) print(response.text)
Interactions API
from google import genai client = genai.Client( enterprise=True, project="PROJECT_ID", location="global", ) interaction = client.interactions.create( model="gemini-3.8-flash", input=[ { "type": "image", "uri": "gs://cloud-samples-data/generative-ai/image/a-man-and-a-dog.png", "mime_type": "image/png", "resolution": "high", # Options: "low", "medium", "high", "ultra_high" }, { "type": "video", "uri": "gs://cloud-samples-data/generative-ai/video/behind_the_scenes_pixel.mp4", "mime_type": "video/mp4", "resolution": "low", # Options: "low", "medium", "high", "ultra_high" }, { "type": "text", "text": "When does the image appear in the video? What is the context?", }, ], ) print(interaction.output_text)
PDF 文件最佳实践
使用 PDF 文件时,请遵循以下最佳实践和信息以获得最佳结果:
- 如果提示包含单个 PDF 文件,请将该 PDF 文件放在请求中的文本提示前面。
- 如果您的文档很长,请考虑将其拆分为多个 PDF 进行处理。
- 使用以文本形式呈现的 PDF 文件,而不是使用扫描图片中的文本。此格式可确保文本是机器可读的,与扫描的图片 PDF 相比,文本更易于模型修改、搜索和操作。在使用合同等包含大量文本的文档时,这样可以提供最佳结果。
限制
虽然多模态 Gemini 模型在许多多模态应用场景中表现出强大功能,但了解模型的限制非常重要:
- 空间推理:模型在定位 PDF 中的文本或对象时并不精确。它们可能只返回对象数的近似值。
- 准确性:模型在解读 PDF 文档中的手写文字时可能会产生幻觉。
后续步骤
- 开始使用多模态 Gemini 模型进行构建 - 新客户可获享 $300 免费 Google Cloud 赠金,探索他们可以使用 Gemini 执行的操作。
- 了解如何发送聊天提示请求。
- 了解 Responsible AI 最佳实践和 Agent Platform 的安全过滤条件。