Endpoints soportados
| Endpoint | Descripción |
|---|---|
/v1/chat/completions | Solicitudes de completación de chat |
/v1/embeddings | Generación de embeddings |
/v1/images/generations | Generación de imágenes |
Ciclo de vida
Un lote pasa por estos estados:| Estado | Descripción |
|---|---|
validating | Se está verificando el archivo de entrada por errores de formato y contenido. |
failed | La validación falló — el archivo de entrada contiene errores. Consulta batch.errors para más detalles. |
in_progress | Las solicitudes se están procesando. |
finalizing | Todas las solicitudes han sido procesadas y se están generando los archivos de salida. |
completed | El lote finalizó. Descarga los resultados desde output_file_id. |
cancelling | Se solicitó una cancelación. Las solicitudes en curso están finalizando. |
cancelled | El lote fue cancelado. Puede haber resultados parciales disponibles. |
expired | El lote no se completó dentro de la ventana de 24 horas. |
Paso 1 — Prepara el archivo de entrada
Crea un archivo JSONL donde cada línea es una solicitud. Cada línea tiene cuatro campos:| Campo | Tipo | Descripción |
|---|---|---|
custom_id | string | Tu identificador para esta solicitud. Se usa para emparejar la entrada con la salida. Debe ser único dentro del archivo. |
method | string | "POST" — el único método soportado. |
url | string | La ruta del endpoint — debe coincidir con el endpoint que declares al crear el lote. |
body | object | El cuerpo de la solicitud — los mismos parámetros que enviarías al endpoint síncrono. |
Paso 2 — Sube el archivo de entrada
Sube el archivo JSONL usando la API de Archivos conpurpose: "batch".
Paso 3 — Crea el lote
Pasa el ID del archivo subido, el endpoint objetivo y la ventana de finalización.Paso 4 — Consulta el estado del lote
Consulta el lote hasta que alcance un estado final.Paso 5 — Descarga los resultados
Una vez que el lote estécompleted, descarga el archivo de salida. Es un archivo JSONL donde cada línea contiene el custom_id que proporcionaste, la respuesta y cualquier error.
response es null y error contiene los detalles:
error_file_id que contiene solo las entradas fallidas.
Cancelar un lote
Cancela un lote que aún está en progreso. Las solicitudes que ya se completaron permanecen en la salida.cancelling mientras finalizan las solicitudes en curso, y luego a cancelled.
Listar lotes
Recupera todos los lotes de la cuenta actual, del más reciente al más antiguo. Soporta paginación.after con un ID de lote para paginar los resultados.
Ejemplo: embeddings por lote
El mismo flujo funciona para embeddings. Cambia elurl en cada línea del JSONL y el endpoint al crear el lote.
Errores de validación
Si el archivo de entrada tiene problemas de formato, el lote pasa afailed inmediatamente.
Causas comunes:
- JSON inválido — una línea no es un JSON válido.
- Campos faltantes — falta
custom_id,method,urlobodyen una línea. - Método incorrecto —
methoddebe ser"POST". - URL no coincide — el
urlde una línea no coincide con elendpointdeclarado al crear el lote. custom_idduplicado — cadacustom_iddebe ser único dentro del archivo.
batch.errors.data para ver los mensajes de error específicos y los números de línea.
Ver también
- Generar una respuesta para el patrón de completaciones de chat síncronas.
- Archivos y almacenes vectoriales para la API de Archivos usada para subir entradas por lote.