mini-format 1.2.2 · SPEC 1.1 — crea tu toolkit desde tus muestras JSON empezar →

1.2.2 Tu JSON. Tu contrato. Tu .mini. →

Salidas de LLM que se validan solas.

Entrega muestras JSON de tu dominio. mini-format construye tu contrato, el prompt y las herramientas para recibir JSON validado desde respuestas compactas de IA. Detecta errores y aplica reparaciones seguras con un informe verificable.

Cómo funciona · ver los ejemplos →

Instalar mini-format 1.2.2

pip install https://mini-format.pmoluna.com/downloads/mini_format-1.2.2-py3-none-any.whl
Ver la guía de instalación ↗

Tras instalar Python, ejecuta mini: el asistente crea tu formato y una guía paso a paso. Python 3.9+ · núcleo sin dependencias · MIT.

Crear mi primer .mini →

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 →

Para tu aplicación

PythonTypeScriptJavaScript

Cómo funciona

Tus datos.
Tu propio .mini.

Decides qué información necesita tu aplicación. mini-format crea las reglas y las instrucciones para que la IA responda en .mini; después comprueba la respuesta y te devuelve los datos para usarlos.

  1. 01

    Describe tus datos

    Partes de muestras JSON o del esquema de tu aplicación.

  2. 02

    Crea tu formato

    El contrato fija los campos y tipos. El prompt explica a la IA cómo responder.

  3. 03

    Valida y usa la respuesta

    Recuperas los registros válidos y detectas lo que debes corregir o volver a pedir.

Cómo funciona · ver los ejemplos →

Sigue el proceso, prueba la Mesa de ayuda y compara un lote de tickets en la misma página.

Cuatro piezas, diseñadas juntas.
Adopta una, o todas.

mini validate y parse() entran en un proyecto Python o Node ya existente. No cambias de proveedor de modelo ni de framework.

Especificación

sustituye a JSON Schema · prompts a mano

Gramática EBNF, 15 códigos de error estables y protocolo de extensión. La norma se escribe antes que el código y decide cuando las implementaciones difieren.

$ mini prompt --contract contrato.json --lang es

Bibliotecas

sustituye a regex · json.loads · try/except

Python y TypeScript, escritas por separado desde la misma norma. Parser, serializador, modo tolerante, bloque de prompt y lector en streaming.

$ mini build samples.json --prefix app --out .mini

Herramienta

sustituye a jq · scripts de validación

Construye tu toolkit, valida, diagnostica, convierte en ambos sentidos, genera prompts y cuenta tokens con tu propio contrato.

$ mini diagnose respuesta.mini --contract contrato.json

Conformidad

sustituye a pruebas por implementación

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

$ python conformance/run_python.py

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.2.2
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)

Playground

Contrato, datos
y salida a la vez.

  1. Abre el ejemplo de tickets o diseña tu contrato con el asistente.
  2. Pega la respuesta del modelo en el editor: se valida mientras tecleas.
  3. Compara tokens contra JSON, YAML, XML, CSV y el codificador oficial de TOON.

Se ejecuta entero en tu navegador con el port JavaScript de la referencia. Sin servidor, sin cuenta.

Abrir el playground
Playground · demo en bucle0:00 / 0:24

        

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.

Empieza por tus datos.

Descarga el toolkit, reúne tus muestras JSON y construye el contrato de tu aplicación.

mini build phones.json --prefix phone --out .mini

Documentación · Especificación 1.1 · Índice de errores · Playground