Skip to main content
La Batch API para Large Language Models permite el procesamiento asíncrono de numerosas solicitudes de inferencia y es totalmente compatible con el estándar de la OpenAI API. La Batch API es una solución rentable cuando no se necesitan resultados de inferencia inmediatos. Proporciona límites de tasa más altos que las llamadas en línea, lo que garantiza que los resultados se entreguen dentro de un plazo razonable de 24 horas. Esta API es ideal para:
  • Realizar evaluaciones y análisis de datos.
  • Clasificar conjuntos de datos extensos.
  • Generar resúmenes de documentos en modo sin conexión.
Modelos admitidos:

Inicio rápido

1. Preparar archivos por lotes

La Batch API utiliza archivos en formato .jsonl como entrada, donde cada línea representa los detalles de una solicitud de inferencia de API. Los endpoints disponibles incluyen /v1/chat/completions y /v1/completions.
Establece el parámetro endpoint en /v1/chat/completions o /v1/completions para la compatibilidad con la OpenAI API.
Cada solicitud debe incluir un custom_id único para localizar los resultados de inferencia en el archivo de salida una vez completado el lote. Los parámetros del campo body de cada línea se envían como parámetros reales de la solicitud de inferencia al endpoint.
Todas las solicitudes dentro de un único archivo JSONL por lotes deben apuntar al mismo modelo. No mezcles solicitudes para diferentes modelos en un solo lote.
A continuación se muestra un archivo de entrada de ejemplo que contiene 2 solicitudes:

2. Subir el archivo de entrada por lotes

Sube el archivo de entrada por lotes para garantizar que pueda referenciarse con precisión al crear un lote. Usa la Files API para subir tu archivo .jsonl y establece el purpose en batch. Ten en cuenta que el archivo se conservará durante 15 días.
Para saber cómo obtener una API key, consulta Gestión de API Key.
Ejemplo de código Python
Curl
Respuesta de ejemplo tras una subida de archivo correcta:

3. Crear un lote

Una vez que el archivo de entrada se haya subido correctamente, puedes iniciar un lote usando el ID del objeto File subido. La ventana de finalización está fijada en 24h y actualmente no se puede ajustar. Ejemplo de código Python
Curl
Esta solicitud generará un objeto Batch que incluye metadatos sobre tu lote, como se ilustra en el siguiente ejemplo:

4. Comprobar el estado de un lote

Puedes comprobar el estado de un lote en cualquier momento para recibir la información más reciente del lote. Los valores de enumeración de estado del objeto Batch son los siguientes:
EstadoDescripción
VALIDATINGEl archivo de entrada se está validando antes de que el lote pueda comenzar
PROGRESSEl lote está en progreso
COMPLETEDEl procesamiento por lotes se completó correctamente
FAILEDEl procesamiento por lotes falló
EXPIREDEl lote superó la fecha límite
CANCELLINGEl lote se está cancelando
CANCELLEDEl lote fue cancelado
Ejemplo de código Python
Curl

5. Recuperar los resultados

Una vez completada la inferencia por lotes, puedes descargar el archivo de salida de resultados usando el campo output_file_id del objeto Batch. El archivo de salida de resultados se eliminará 30 días después de que concluya la inferencia por lotes, así que recupéralo cuanto antes mediante la interfaz. Ejemplo de código Python
Curl
La respuesta devuelve el contenido sin procesar del archivo. Para los archivos de salida por lotes, cada línea contiene una respuesta como esta:

Instrucciones

Limitaciones

  1. Cada lote puede contener hasta 50,000 solicitudes.
  2. El tamaño máximo del archivo de entrada por lote es de 100MB.

Manejo de errores

Los errores encontrados durante el procesamiento por lotes se registran en un archivo de errores independiente, accesible mediante el campo error_file_id. Los códigos de error comunes incluyen:
Código de errorDescripciónSolución
400Formato de solicitud no válidoComprueba la sintaxis JSONL y los campos obligatorios
401Error de autenticaciónVerifica la API key
404Lote no encontradoComprueba el batch ID
429Límite de tasa superadoReduce la frecuencia de las solicitudes
500Error del servidorContáctanos

Expiración de lotes

Los lotes que no se completen en un plazo de 24 horas pasarán a un estado EXPIRED. Las solicitudes no finalizadas se cancelarán, mientras que las solicitudes completadas se proporcionarán mediante un archivo de salida. Solo pagas por los tokens consumidos por las solicitudes completadas. El lote hará todo lo posible por completarse dentro de 24 horas.

Toda la Batch API

  1. Crear lote
  2. Recuperar lote
  3. Cancelar lote
  4. Listar lotes
  5. Subir archivo
  6. Listar archivos
  7. Recuperar archivo
  8. Eliminar archivo
  9. Recuperar contenido de archivo
Última modificación el 15 de mayo de 2026