La API de Gemini Batch está diseñada para procesar grandes volúmenes de solicitudes de forma asíncrona con el 50% del costo estándar. El tiempo de respuesta objetivo es de 24 horas, pero, en la mayoría de los casos, es mucho más rápido.
Usa la API de Batch para tareas a gran escala y no urgentes, como el preprocesamiento de datos o la ejecución de evaluaciones en las que no se requiere una respuesta inmediata.
Crea un trabajo por lotes
Tienes dos formas de enviar tus solicitudes en la API de Batch:
- Solicitudes intercaladas: Es una lista de objetos
GenerateContentRequestincluidos directamente en tu solicitud de creación por lotes. Esto es adecuado para lotes más pequeños que mantienen el tamaño total de la solicitud por debajo de los 20 MB. El resultado que devuelve el modelo es una lista de objetosinlineResponse. - Archivo de entrada: Un archivo JSON Lines (JSONL) en el que cada línea contiene un objeto
GenerateContentRequestcompleto. Este método se recomienda para solicitudes más grandes. El resultado que devuelve el modelo es un archivo JSONL en el que cada línea es un objetoGenerateContentResponseo un objeto de estado.
Solicitudes intercaladas
Para una pequeña cantidad de solicitudes, puedes incorporar directamente los objetos GenerateContentRequest dentro de tu BatchGenerateContentRequest. En el siguiente ejemplo, se llama al método BatchGenerateContent con solicitudes intercaladas:
Python
from google import genai
from google.genai import types
client = genai.Client()
# A list of dictionaries, where each is a GenerateContentRequest
inline_requests = [
{
'contents': [{
'parts': [{'text': 'Tell me a one-sentence joke.'}],
'role': 'user'
}]
},
{
'contents': [{
'parts': [{'text': 'Why is the sky blue?'}],
'role': 'user'
}]
}
]
inline_batch_job = client.batches.create(
model="gemini-3.5-flash",
src=inline_requests,
config={
'display_name': "inlined-requests-job-1",
},
)
print(f"Created batch job: {inline_batch_job.name}")
JavaScript
import {GoogleGenAI} from '@google/genai';
const ai = new GoogleGenAI({});
const inlinedRequests = [
{
contents: [{
parts