您可以向 Gemini Chat Completions API 请求添加图片,以便执行涉及理解所含图片内容的任务。图片理解是 Gemini 的一种多模态输入,可将文本与媒体文件相结合。
如需详细了解如何使用 Gemini 进行图片理解,以及发送 API 请求的分步说明,请参阅发送多模态提示。
包含图片的提示的规范
您可以向 Gemini 请求添加单张或多张图片。为确保 Google Distributed Cloud (GDC) air-gapped 中 Gemini 模型的性能,每个提示的图片数量上限为 100 张。
对图片中的像素数量没有具体限制。不过,较大的图片会被缩小和填充,以适应最大分辨率 (768 x 768),同时保留其原始宽高比。每张图片相当于 258 个词元。
图片必须是以下图片数据 MIME 类型之一:
- HEIC:
image/heic - HEIF:
image/heif - JPG:
image/jpg或image/jpeg - PNG:
image/png - WEBP:
image/webp
您可以使用 REST API 中的 Chat Completions 端点,并使用 HTTP 客户端或 OpenAI 的官方 Python SDK。您可以将图片作为内嵌数据提供给提示请求,以 base64 编码文件的形式提供,也可以在发出提示请求之前将图片文件上传到存储桶。
如需详细了解图片方面的最佳实践和限制,请参阅 Google Cloud 文档。
如需详细了解 OpenAI 和 Gemini 在 Google Distributed Cloud (GDC) 隔离环境中实现的 Chat Completions 端点,请参阅 https://platform.openai.com/docs/api-reference/chat。
了解根据提示生成的图片
以下示例展示了 Gemini Chat Completions API 请求,该请求使用 OpenAI 的官方 Python SDK 或 curl 从文本和图片输入生成文本。
Python
import openai
client = openai.OpenAI()
model_response = client.chat.completions.create(
model = "MODEL_ID",
messages = [
{
"role": "user",
"content": "What's in this image?"
},
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
# Image URL or base64-encoded data
"url": IMAGE_DATA,
}
}
]
}
]
)
print(model_response)
替换以下内容:
MODEL_ID:要生成回答的模型的端点 ID。IMAGE_DATA:存储桶中图片网址的路径或以 base64 编码的图片数据。请根据您的数据考虑以下几个方面:- Base64 编码的数据必须以数据 URI 方案(RFC 2397)为前缀。因此,对于 base64 编码的数据,
url字段的格式为,例如"url": f"data:image/jpeg;base64,{base64_image}"。 - 图片网址必须指向存储在 GDC 存储桶中的图片。因此,图片网址的
url字段的格式为"url": "s3://path/to/bucket/image"。如需了解详情,请参阅存储数据。
- Base64 编码的数据必须以数据 URI 方案(RFC 2397)为前缀。因此,对于 base64 编码的数据,
curl
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": "What's in this image?"
},
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
# Image URL or base64-encoded data
"url": IMAGE_DATA
}
}
]
}
],
"max_tokens": 300
}'
替换以下内容:
ENDPOINT:您组织使用的 API 端点。PROJECT:您的项目 ID。MODEL_ID:要生成回答的模型的端点 ID。IMAGE_DATA:存储桶中图片网址的路径或以 base64 编码的图片数据。请根据您的数据考虑以下几个方面:- Base64 编码的数据必须以数据 URI 方案(RFC 2397)为前缀。因此,对于 base64 编码的数据,
url字段的格式为,例如"url": f"data:image/jpeg;base64,{base64_image}"。 - 图片网址必须指向存储在 GDC 存储桶中的图片。因此,图片网址的
url字段的格式为"url": "s3://path/to/bucket/image"。如需了解详情,请参阅存储数据。
- Base64 编码的数据必须以数据 URI 方案(RFC 2397)为前缀。因此,对于 base64 编码的数据,