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/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 文件的单页被视为一张图片。提示中允许的页数取决于模型可以支持的图片数量。
- 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 存储桶中的文档文件。如需了解详情,请参阅存储数据。