mini-format 1.3.1 · de tu IA a tu aplicación, paso a paso empezar →

1.3.1 .mini · Para aplicaciones que piden JSON a una IA

Tu IA puede
costar menos.

.mini es un formato compacto para los datos que genera tu IA: pedidos, productos, tickets o los objetos que necesita tu aplicación. JSON repite los nombres de los campos en cada objeto; .mini usa un contrato para evitar esa repetición y reducir el texto que se cobra.

Acuerdas los campos una vez en un contrato; la IA responde en .mini y el código lo comprueba y convierte a JSON para tu aplicación. Menos tokens —los fragmentos de texto que cobra la IA— puede reducir el coste de la respuesta. El total también depende de las instrucciones y los reintentos.

Ver un ejemplo de integración →Descargar y empezar

Dónde se reduce el texto

JSON repite los nombres.
.mini acuerda las reglas una vez.

  1. 01

    JSON

    Cada ticket vuelve a escribir "titulo", "categoria" y "prioridad", con comillas y signos. La IA también genera y cobra ese texto.

  2. 02

    TOON

    También reduce repetición: en una tabla, declara los campos una vez. Es otra alternativa para responder con datos estructurados.

  3. 03

    .mini

    Adapta un contrato a tu dominio: soporte, pedidos o inventario. Cada línea usa el orden de campos acordado y el código conoce sus tipos. Tu aplicación recupera el JSON.

En los 20 tickets medidos, .mini usa 278 tokens frente a 304 de TOON y 443 de JSON. La ventaja depende de tus datos; compara también las instrucciones y las correcciones antes de calcular el ahorro total.

Qué hace mini setup

Tu formato nace
de los datos que necesitas.

Es un asistente en tu terminal. Le das un JSON como el que necesita tu aplicación; prepara las reglas del formato y su conexión a tu llamada a IA.

  1. 01

    Describe tu JSON

    Elige español o inglés y una muestra de datos. El contrato guarda sus campos, su orden y sus tipos: las reglas de tu .mini.

  2. 02

    Recibe el kit preparado

    El prompt son las instrucciones para la IA. El workflow es el código que comprueba su respuesta, la repara cuando puede y devuelve JSON.

  3. 03

    Elige el archivo de tu flujo

    Indica dónde llamas a la IA para preparar la integración. Si todavía no tienes ese código, la guía guarda el comando para hacerlo después.

Seguir la instalación y el setup →

Incluye un prompt para probar 20 objetos antes de conectar tu aplicación.

Dentro de tu código

Comprueba primero.
Guarda después.

El workflow conecta tu llamada a IA con el validador y el parser. El validador comprueba las reglas; Repair corrige fallos de formato. El parser convierte una respuesta válida a objetos JSON para tu aplicación.

Si hay un tipo incorrecto o faltan datos, el workflow puede pedir una corrección a la IA y vuelve a comprobarla. La animación muestra una ejecución guardada con 20 tickets.

Inspeccionar la ejecución guardada →Abrir el playground
20 tickets · .mini → JSON0:00 / 0:36

Empieza con una muestra JSON.

Descarga y extrae el paquete. Instala el archivo Python incluido y abre el asistente:

python -m pip install --no-index mini_format-1.3.1-py3-none-any.whl
mini setup

El asistente pregunta el idioma, lee tu muestra JSON y prepara el kit. Después eliges el archivo que llama a la IA o «Todavía no tengo un flujo» para conectarlo más adelante.

Descargar .mini 1.3.1 ↓Seguir la guía

Python 3.9+ · MIT · Ejemplo de 20 tickets e historial incluidos.

Ver más mediciones y documentación técnica

DummyJSON products

194 registros · Datos públicos de prueba

Tokens de salida relativos a .mini · menos es mejor. o200k_base

mini-formatmini-domain/11,00×
CSVplano1,05×
TOONplano1,07×
JSONcompacto1,39×
TOONoriginal1,46×
YAML1.21,56×
XMLelementos2,65×
6,11 % menos tokens que TOON plano. Incluye metadatos y diccionarios del documento; prompt reutilizable medido aparte.método →

Cuantos más campos,
más gana.

JSON repite el nombre de cada campo en cada objeto. mini-format lo declara una vez en el contrato. El coste de los nombres crece como O(W·N) en JSON y como O(W) aquí.

3 campos

registro estrecho

ahorro32,2 %
20 campos

registro típico de negocio

ahorro46,7 %
50 campos

registro ancho

ahorro49,3 %

Ahorro frente a JSON compacto · escala lineal, origen en 0 %, máximo del eje 50 % · 1000 registros · tokenizador o200k_base · mediana de 5 documentos por celda · datos sintéticos deterministas (semilla 20260915). La curva satura cerca de 32 campos. reproducir →

Mismos datos.
Menos tokens medidos.

1.902 registros de cuatro conjuntos públicos. 35,64 % menos tokens que JSON compacto y 9,65 % menos que TOON plano en el total medido.

Tokens de salida, ahorro y coste del prompt reutilizable
ConjuntoN.miniTOON flatAhorro vs TOONAhorro vs CSVPrompt .mini
DummyJSON products19464.09068.2606,11 %4,42 %1.206
DummyJSON users20843.26860.92628,98 %27,92 %1.796
JSONPlaceholder comments50030.26831.0222,43 %-1,35 %477
USGS earthquake observations1.000164.137173.8035,56 %4,11 %1.336

USGS: 1.000 observaciones reales. DummyJSON y JSONPlaceholder: 902 registros de prueba sintéticos, sin duplicación para inflar el lote. Ida y vuelta JSON exacta en los ocho formatos. TOON oficial 4.1.1; se elige el menor de dos aplanados reversibles. Los porcentajes son de salida: el prompt de .mini se muestra aparte. CSV sigue siendo menor en comentarios. Es una medición de serialización, no de precisión de generación de un LLM. Método y reproducción → · JSON

El mismo documento
no cuesta lo mismo en cada modelo.

Los separadores no se segmentan igual en todos los vocabularios. Mismos 14 dominios, lote de 10, frente a JSON compacto.

r50k_base

vocabulario de 50k

ahorro30,2 %

IC95 [26,8 % · 31,5 %] · k=14

cl100k_base

vocabulario de 100k

ahorro32,2 %

IC95 [29,1 % · 33,5 %] · k=14

o200k_base

vocabulario de 200k

ahorro34,1 %

IC95 [31,5 % · 35,5 %] · k=14

Escala lineal, origen en 0 %, máximo del eje 36 %: la diferencia es real pero pequeña — 3,9 puntos entre el vocabulario más antiguo y el más reciente. Los tres vocabularios pertenecen a la familia tiktoken. reproducir →

Interfaz

Todo sale
del contrato.

pythonminifmt 1.3.1
from minifmt import Contract, parse, dumps, spec_block, roundtrip_ok

c = Contract.load("contrato.json")     # el contrato de tu aplicación

instruccion = spec_block(c, lang="es")      # bloque para el prompt de sistema
doc = parse(respuesta, c, strict=False)     # tolerante: no lanza, acumula

doc.records                                 # registros válidos, ya tipados
for e in doc.errors:                        # MiniError: code, line, field, message
    print(e)

texto = dumps(doc.to_canonical(), c)          # canónico -> .mini
assert roundtrip_ok(doc.to_canonical(), c)

Comparativa

Qué hace cada formato
cuando el emisor es un modelo.

Capacidadmini-formatJSONCSVTOON
Menos tokens que JSON compacto✓—✓✓
Tipos declarados en el contrato✓parcial✗parcial
Error con código, línea y campo✓parcial✗✗
Códigos de error estables en la norma15✗✗✗
Recuperación ante truncamiento✓✗✓parcial
Reparación selectiva por línea✓✗✗✗
Lectura en streaming, registro a registro✓parcial✓✗
Suite de conformidad publicada376✓✗✗
Dos implementaciones independientes✓✓✓parcial
Listas con elemento marcado✓✗✗✗
Compatibilidad hacia adelante declarada✓✗✗✗
Anidamiento arbitrario✗✓✗✓
Lectura directa sin contratoparcial✓✓✓
Soporte nativo en APIs de proveedores✗✓✗✗

La compatibilidad conserva los campos conocidos cuando el mismo prefijo declara una versión superior. El perfil base usa registros planos; el toolkit generado reconstruye la estructura JSON de tu dominio. El modelo necesita el prompt y el lector, el contrato.

376 casos independientes del lenguaje, con expectativas escritas desde la norma y nunca calculadas ejecutando el código. Python y TypeScript pasan 376/376.

Gramática EBNF, 15 códigos de error estables y protocolo de extensión.

Ver las pruebas de conformidad →

Especificación · Validación · Referencia de errores · Ejemplos opcionales