bl batch convierte CSV en Batch JSONL, crea tareas por lotes de Chat o Embedding asíncronas, rastrea el progreso, cancela tareas y descarga archivos de resultados y de errores. Las tareas por lotes asíncronas basadas en archivos son independientes de la solicitud única síncrona bl text chat --batch.
batch convert se ejecuta localmente y no requiere autenticación. Crear, consultar, cancelar y descargar tareas requiere una clave de API de modelo. La disponibilidad y los límites de Batch dependen del modelo y del servicio.
Agregue --help a cualquier comando para ver los detalles completos de los parámetros, por ejemplo bl batch create --help. Los detalles de los comandos de esta página se verificaron con bl 2.8.0.
Inicio rápido
bl batch convert --file input.csv --model qwen-plus --output-file input.jsonl
bl batch create --file input.jsonl
bl batch get --batch-id <batch-id> --follow
bl batch download --batch-id <batch-id> --csv
Gestión de tareas
bl batch convert
Crea Batch JSONL a partir de un CSV UTF-8 de forma local. No requiere autenticación.
Uso
bl batch convert --file <csv> --model <model> --output-file <jsonl> [flags]
| Parámetro | Tipo | Obligatorio | Descripción |
|---|
--file <csv> | string | Sí | CSV UTF-8 con encabezados |
--output-file <jsonl> | string | Sí | Ruta de salida JSONL local |
--model <model> | string | Sí | Modelo para cada registro |
--id-column <name> | string | No | Columna de ID (predeterminado: custom_id) |
--input-column <name> | string | No | Columna de entrada (predeterminado: content) |
--system <text> | string | No | Prompt de sistema compartido (solo Chat) |
--body-file <json> | string | No | Parámetros de cuerpo compartidos, excepto model, messages o input |
--endpoint </v1/chat/completions|/v1/embeddings|/v1/chat/ds-test> | string | No | Endpoint de Batch, inferido del JSONL local |
--force | switch | No | Reemplazar archivos de salida existentes (atómico por archivo) |
Ejemplo: Convertir CSV a Chat JSONL
bl batch convert --file input.csv --model qwen-plus --output-file input.jsonl
Ejemplo: Convertir CSV a Embedding JSONL
bl batch convert --file input.csv --model text-embedding-v4 --endpoint /v1/embeddings --output-file vectors.jsonl
- Solo se admite la asignación de campos de texto y Embedding. Escriba JSONL directamente para entradas multimodales o de varios turnos.
- Los ID permanecen como cadenas. Importe los ID de CSV como texto en el software de hoja de cálculo para conservar los ceros iniciales.
- Dry-run no realiza solicitudes de negocio ni escribe archivos de negocio.
bl batch create
Carga o referencia la entrada y crea una tarea Batch asíncrona. Requiere autenticación con clave de API.
Uso
bl batch create (--file <jsonl> | --input-file-id <source> --endpoint <path>) [flags]
| Parámetro | Tipo | Obligatorio | Descripción |
|---|
--file <jsonl> | string | No | Batch JSONL local (exclusivo con --input-file-id) |
--input-file-id <source> | string | No | ID de archivo, URL HTTPS de OSS o oss:region:bucket/path |
--completion-window <24h|7d> | string | No | Ventana de finalización: 24–336 horas (predeterminado: 24h) |
--name <text> | string | No | Nombre de la tarea (máximo 100 caracteres) |
--description <text> | string | No | Descripción de la tarea (máximo 200 caracteres) |
--callback-url <url> | string | No | Callback de finalización; actualmente documentado solo para la región de China (Pekín) |
--metadata <KEY=VALUE> | array | No | Metadatos personalizados de la tarea (repetible) |
--endpoint </v1/chat/completions|/v1/embeddings|/v1/chat/ds-test> | string | No | Endpoint de Batch, inferido del JSONL local |
Ejemplo: Previsualizar la creación de la tarea
bl batch create --file input.jsonl --name eval-1 --dry-run
Ejemplo: Crear una tarea desde un ID de archivo
bl batch create --input-file-id file-batch-xxx --endpoint /v1/chat/completions
Ejemplo: Referenciar una ruta de OSS con una ventana de finalización de 7 días
bl batch create --input-file-id oss:ap-southeast-1:my-bucket/input.jsonl --endpoint /v1/chat/completions --completion-window 7d
Ejemplo de Chat JSONL:
{"custom_id":"req-001","method":"POST","url":"/v1/chat/completions","body":{"model":"qwen-plus","messages":[{"role":"user","content":"Introduce yourself"}]}}
Ejemplo de Embedding JSONL:
{"custom_id":"req-001","method":"POST","url":"/v1/embeddings","body":{"model":"text-embedding-v4","input":"Introduce yourself","encoding_format":"float"}}
- Límites de entrada local: 50.000 solicitudes, 500 MiB y 6 MiB por línea. Las líneas superiores a 1 MiB generan una advertencia.
batch-test-model está limitado a 100 solicitudes y 1 MiB.
- Las referencias remotas requieren autorización y una URL válida; la CLI no las descarga para validarlas.
- Una creación correcta devuelve un ID de tarea sin esperar la finalización. No se produce reenvío de POST ni limpieza de archivos cargados si hay error.
bl batch get
Obtiene los detalles de la tarea Batch y, opcionalmente, sigue el progreso. Requiere autenticación con clave de API.
Uso
bl batch get --batch-id <id> [--follow] [--interval <seconds>] [--poll-timeout <seconds>]
| Parámetro | Tipo | Obligatorio | Descripción |
|---|
--batch-id <id> | string | Sí | ID de la tarea Batch |
--follow | switch | No | Consultar hasta un estado terminal (Ctrl-C solo detiene la consulta local) |
--interval <seconds> | number | No | Intervalo de consulta, mínimo 60 s (predeterminado: 65 s; solo --follow) |
--poll-timeout <seconds> | number | No | Presupuesto total de consulta (predeterminado: ilimitado; solo --follow) |
Ejemplo: Seguir una tarea hasta que termine
bl batch get --batch-id batch_xxx --follow
- Un get único sale con código 0 tras una consulta correcta, independientemente del estado de la tarea.
- Con
--follow, el código 0 significa completada (puede contener filas fallidas), 1 significa fallida, expirada o cancelada, 5 significa tiempo de espera del cliente y 130 significa Ctrl-C.
finalizing y cancelling no son estados terminales.
- El progreso se escribe en stderr; el resultado final en stdout.
- Solo se reintentan errores de transporte, tiempos de espera o HTTP 429/5xx, hasta tres veces.
- La retención en el servidor es limitada; descargue los resultados cuanto antes.
bl batch list
Muestra una página de tareas Batch. Requiere autenticación con clave de API.
Uso
bl batch list [filters] [--after <id>] [--limit <n>]
| Parámetro | Tipo | Obligatorio | Descripción |
|---|
--limit <n> | number | No | Tamaño de página: 1–100 (predeterminado: 20) |
--after <id> | string | No | last_id de la página anterior |
--name <text> | string | No | Filtro por nombre de tarea |
--input-file-id <id> | array | No | Filtro por archivo de entrada (repetible, máximo 20) |
--status <status> | array | No | Filtro por estado de tarea (repetible): validating, in_progress, finalizing, completed, failed, expired, cancelling, cancelled |
--created-after <yyyyMMddHHmmss> | string | No | Creada después de esta marca de tiempo de la API |
--created-before <yyyyMMddHHmmss> | string | No | Creada antes de esta marca de tiempo de la API |
Ejemplo: Listar tareas completadas y fallidas
bl batch list --status completed --status failed --limit 20
- Devuelve
data, last_id y has_more. Pase last_id a --after para la página siguiente.
- Las marcas de tiempo de la API no se convierten de zona horaria.
bl batch cancel
Solicita la cancelación de una tarea Batch. Requiere autenticación con clave de API.
Uso
bl batch cancel --batch-id <id>
| Parámetro | Tipo | Obligatorio | Descripción |
|---|
--batch-id <id> | string | Sí | ID de la tarea Batch |
Ejemplo: Solicitar la cancelación de la tarea
bl batch cancel --batch-id batch_xxx
- Una cancelación aceptada puede devolver
cancelling, no cancelled. Use batch get --follow para confirmar.
- Las solicitudes ya ejecutadas siguen generando cargos; los archivos no se eliminan.
bl batch download
Descarga los resultados originales o los archivos de errores y, opcionalmente, exporta CSV. Requiere autenticación con clave de API.
Uso
bl batch download --batch-id <id> [--out-dir <path>] [--csv] [--force]
| Parámetro | Tipo | Obligatorio | Descripción |
|---|
--batch-id <id> | string | Sí | ID de la tarea Batch |
--out-dir <path> | string | No | Directorio de salida (predeterminado: ./batch-results/<batch-id>/) |
--csv | switch | No | También generar result.csv (proyección de visualización con pérdida) |
--force | switch | No | Reemplazar archivos de salida existentes (atómico por archivo) |
Ejemplo: Descargar resultados y exportar CSV
bl batch download --batch-id batch_xxx --out-dir ./out --csv
- JSONL es la fuente autoritativa. CSV solo lee
choices[0].message.content, datos de Embedding, response.request_id, status_code, uso y error.code / error.message.
- CSV omite llamadas a herramientas y opciones adicionales, y trata el texto similar a fórmulas como texto. Importe los ID como texto para conservar los ceros iniciales.
- No se garantiza el orden de entrada original.
- Los archivos se publican de forma atómica por archivo, no por directorio. Si falla la generación de CSV, se conserva el JSONL descargado; vuelva a ejecutar con
--force para recuperarlo.
Comandos relacionados
Para una solicitud única síncrona, use bl text chat --batch. No crea una tarea asíncrona. Consulte Chat de texto y Omni.