Playground

Prueba cómo una respuesta .mini se convierte a JSON. Después compara cuánto texto necesita cada formato.

Práctica del formato base en tu navegador. Para conectar tu propio contrato generado por setup, sigue la guía de integración →

mini-format 1.3.3 · SPEC 1.1
motor: js/mini.js

Cada línea de la izquierda es un ticket de soporte. A la derecha, el parser lo convierte a un objeto JSON para tu aplicación. Cambia un valor para comprobarlo; «Inyectar errores» muestra qué se rechaza.

1 · Respuesta de la IA en .mini

    2 · JSON para tu aplicación

    Reglas de los campos e instrucciones para la IA

    Firma del contrato

    
        
    Bloque de prompt para un modelo generativo (EN)
    Bloque de especificación para un modelo generativo (ES)
    contract.json

    Mismos tickets, tres formas de escribirlos. Los tokens son fragmentos de texto facturables: una barra menor cuesta menos en la respuesta, con el mismo modelo y tarifa. Instrucciones y reintentos aparte.

    ¿Cuánto texto escribe la IA en su respuesta?

    Todos los formatos y detalles de medición

    Referencia TOON v4.1.1. Recuento de tokens: …. Sólo se mide la respuesta serializada; aquí no se mide la calidad de generación ni el coste total de la API.

    Ver los mismos datos en otro formato

    Diseña tu contrato: empieza en blanco o amplía la muestra, añade campos, examina el documento y el prompt generados, y descarga contract.json. Para comprobar después tus contratos y fixtures, ejecuta mini --forks DIR check-forks.

    1 · Identidad

    2 · Campos

    tipos: str, int, float, bool, date, decimal, enum{a|b}, list<str>, mlist<str>, tuple(a:float,b:int)

    Comprobación de invariantes

    3 · Contrato generado

    
          

    Bloque de prompt

    
          

    Documento de ejemplo

    
        

    Estructura

    prefix|n=12|key=value|key=a,b,c        ← header (contract + count + metadata)
    f1|f2|f3,f4*,f5|a,b,c|…                ← one record per line, fields by position
                                            list elements separated by ','
                                            selected element ends with *
                                            tuple = fixed comma-separated group

    Escapes

    \|   literal vertical bar          (everywhere)
    \\   literal backslash             (everywhere)
    \n   line break inside a value     (everywhere)
    \,   literal list separator        (inside list elements)
    \*   literal trailing asterisk     (inside list elements)

    Invariantes de familia

    I1 one line = one valid record      I4 new fields only at the tail
    I2 prefix and n are mandatory        I5 fixtures must round-trip
    I3 inherited core never changes      (breaking change ⇒ new prefix)

    Códigos de error

    CódigoCondición
    E01no header
    E02prefix ≠ contract
    E03missing n
    E04record count ≠ n
    E05record arity outside core…core+extensions
    E06type mismatch / required empty
    E07list or tuple arity
    E08marker rule violated
    E09bad escape
    E10enum violation
    E11duplicate unique value
    E12header entry malformed/missing
    E13numeric range
    E20/E21invalid contract / fork invariant

    Especificación completa: /docs/spec/. Índice de errores con una página por código: /docs/errors/. Motor de esta página: js/mini.js, generado desde la biblioteca TypeScript y verificado con la suite de conformidad.