Puedes agregar imágenes a las solicitudes de la API de Gemini Chat Completions para realizar tareas que impliquen comprender el contenido de las imágenes incluidas. La comprensión de imágenes es una de las entradas multimodales de Gemini que combinan texto con archivos multimedia.
Para obtener más información sobre la comprensión de imágenes con Gemini y las instrucciones paso a paso para enviar solicitudes a la API, consulta Envía una instrucción multimodal.
Especificaciones para instrucciones con imágenes
Puedes agregar una o varias imágenes a tus solicitudes de Gemini. La cantidad máxima de imágenes por instrucción para garantizar el rendimiento de los modelos de Gemini en Google Distributed Cloud (GDC) aislado es de 100.
No hay un límite específico para la cantidad de píxeles en una imagen. Sin embargo, las imágenes más grandes se reducen y se rellenan para adaptarse a una resolución máxima de 768 x 768, a la vez que conservan su relación de aspecto original. Cada imagen equivale a 258 tokens.
Las imágenes deben estar en uno de los siguientes tipos de MIME de datos de imágenes:
- HEIC:
image/heic - HEIF:
image/heif - JPG:
image/jpgoimage/jpeg - PNG:
image/png - WEBP:
image/webp
Puedes usar el endpoint de Chat Completions en la API de REST y usar un cliente HTTP o los SDKs oficiales de OpenAI para Python. Puedes proporcionar la imagen como datos intercalados en la solicitud de instrucción como un archivo codificado en base64 o subir el archivo de imagen a un bucket de almacenamiento antes de realizar la solicitud de instrucción.
Obtén más información sobre las prácticas recomendadas y las limitaciones para las imágenes en la documentación de Google Cloud .
Para obtener más información sobre OpenAI y el extremo de Chat Completions que Gemini implementa en Google Distributed Cloud (GDC) aislado, consulta https://platform.openai.com/docs/api-reference/chat.
Cómo comprender una imagen a partir de una instrucción
En los siguientes ejemplos, se muestra una solicitud a la API de Gemini Chat Completions para generar texto a partir de una entrada de texto y una imagen con los SDKs oficiales de OpenAI para Python o 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)
Reemplaza lo siguiente:
MODEL_ID: Es el ID del extremo del modelo con el que deseas generar la respuesta.IMAGE_DATA: Es la ruta de acceso a la URL de una imagen en un bucket o los datos de la imagen codificados en base64. Considera los siguientes aspectos según tus datos:- Los datos codificados en Base64 deben tener el prefijo de un esquema de URI de datos, RFC 2397.
Por lo tanto, el formato del campo
urlpara los datos codificados en base64 es, por ejemplo,"url": f"data:image/jpeg;base64,{base64_image}". - Las URLs de las imágenes deben hacer referencia a imágenes almacenadas en un bucket de almacenamiento de GDC. Por lo tanto, el formato del campo
urlpara las URLs de imágenes es, por ejemplo,"url": "s3://path/to/bucket/image". Para obtener más información, consulta Almacena datos.
- Los datos codificados en Base64 deben tener el prefijo de un esquema de URI de datos, RFC 2397.
Por lo tanto, el formato del campo
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
}'
Reemplaza lo siguiente:
ENDPOINT: Es el extremo de API que usas para tu organización.PROJECT: el ID de tu proyectoMODEL_ID: Es el ID del extremo del modelo con el que deseas generar la respuesta.IMAGE_DATA: Es la ruta de acceso a la URL de una imagen en un bucket o los datos de la imagen codificados en base64. Considera los siguientes aspectos según tus datos:- Los datos codificados en Base64 deben tener el prefijo de un esquema de URI de datos, RFC 2397.
Por lo tanto, el formato del campo
urlpara los datos codificados en base64 es, por ejemplo,"url": f"data:image/jpeg;base64,{base64_image}". - Las URLs de las imágenes deben hacer referencia a imágenes almacenadas en un bucket de almacenamiento de GDC. Por lo tanto, el formato del campo
urlpara las URLs de imágenes es, por ejemplo,"url": "s3://path/to/bucket/image". Para obtener más información, consulta Almacena datos.
- Los datos codificados en Base64 deben tener el prefijo de un esquema de URI de datos, RFC 2397.
Por lo tanto, el formato del campo