Cómo utilizar TOON con LLM
Si alguna vez pegó una matriz JSON grande en ChatGPT o Claude, probablemente haya sentido el dolor de que la ventana contextual se cierre. JSON es fantástico para las API web, pero para los modelos de lenguajes grandes (LLM), es increíblemente derrochador. Repetir nombres de campos como "id":, "name": y "timestamp": para cada registro no sólo es redundante; quema tokens que cuestan dinero real y un valioso espacio de contexto.
Aquí es donde brilla TOON (Notación de objetos de tabla). No es sólo un formato de datos; es una estrategia para optimizar las interacciones LLM. Al eliminar el impuesto de sintaxis de JSON y agregar encabezados de estructura explícitos, TOON le permite pasar más datos a sus modelos y obtener a cambio resultados estructurados más confiables.
La economía simbólica de TOON
¿Por qué molestarse en cambiar de formato? La matemática es simple. En una matriz de objetos JSON estándar, el esquema se repite para cada fila. Si tienes una lista de 50 usuarios, estás pagando por los nombres de los campos 50 veces.
TOON elimina esta redundancia declarando el esquema una vez en el encabezado. Los datos se presentan en un formato denso y simplificado. En la práctica, esto normalmente da como resultado una reducción del 30 al 60 % en el uso de tokens para matrices uniformes en comparación con JSON formateado. Cuando se trata de ventanas de contexto masivas o llamadas API de gran volumen, esa eficiencia se traduce directamente en facturas más bajas y menor latencia.
Envío de datos: la regla "Mostrar, no decir"
Cuando necesita un LLM para analizar datos, su estrategia rápida es crucial. Los principiantes suelen escribir párrafos largos explicando el formato de los datos. Con TOON, no necesitas hacer eso.
Los LLM son motores de coincidencia de patrones. Entienden intuitivamente TOON porque parece un híbrido de YAML y CSV, formatos que han visto miles de millones de veces durante el entrenamiento.
Para enviar datos, simplemente envuélvalos en un bloque de código vallado. Puedes etiquetarlo como "toon", pero incluso si el resaltador de sintaxis del modelo no lo admite oficialmente, el modelo comprende la estructura de inmediato.
Ejemplo de entrada
En lugar de describir el esquema, simplemente proporcione el bloque:
El encabezado users[3]{id,name,role,lastLogin} le dice al modelo todo lo que necesita saber: el tipo de entidad, el recuento (3 filas) y el orden de los campos. La sangría maneja la jerarquía. Esta naturaleza de "autodocumentación" libera su mensaje para centrarse en la tarea lógica real en lugar de en las instrucciones de análisis de sintaxis.
Aquí está el registro de actividad del usuario. Los datos están en formato TOON (sangría de 2 espacios, encabezados explícitos).
usuarios[3]{id,nombre,función,último inicio de sesión}:
1, Alicia, administrador, 2025-01-15T10:30:00Z
2,Bob,usuario,2025-01-14T15:22:00Z
3,Charlie,usuario,2025-01-13T09:45:00Z
Tarea: Analizar los registros e identificar qué usuarios no han iniciado sesión en las últimas 24 horas.
Generando resultados confiables
Conseguir que un LLM lea datos es fácil; lograr que genere datos estructurados válidos es la parte difícil. A los modelos les encanta alucinar, truncar JSON u olvidarse de cerrar llaves.
TOON agrega una capa de seguridad a través de la sintaxis de su encabezado, específicamente el recuento "[N]". Cuando le pides a un modelo que genere TOON, le estás pidiendo que se comprometa con una estructura antes de generar los datos.
Incitando a la generación
Para obtener los mejores resultados, proporcione el formato de encabezado que espera e indique al modelo que complete las filas.
Al pedirle al modelo que calcule [N], se fuerza un proceso de "cadena de pensamiento" en el que el modelo debe planificar el tamaño de salida. Esta restricción aparentemente pequeña reduce significativamente la probabilidad de que el modelo se corte a la mitad de una lista.
Tarea: devolver una lista de usuarios activos con el rol "usuario".
Formato: Utilice TOON. Establezca el valor [N] en el encabezado para que coincida con el número exacto de filas que genere.
Formato esperado:
usuarios[N]{id,nombre,función,último inicio de sesión}:
Validación con modo estricto
Cuando reciba la respuesta del LLM, no debe confiar simplemente en ella. Aquí es donde el modo estricto de la biblioteca TOON se convierte en un superpoder para las aplicaciones de producción.
Si está utilizando la biblioteca TypeScript, la decodificación con modo estricto valida que las filas generadas coincidan con el recuento de encabezados:
Esto le permite detectar mediante programación resultados de modelos "perezosos" o truncamientos de red inmediatamente, en lugar de descubrir datos incorrectos en su aplicación.
importar {decodificar} desde '@toon-format/toon';
prueba {
// Si el modelo dice [5] pero proporciona 4 filas, se genera un error.
datos constantes = decodificar (modelOutput, {estricto: verdadero});
console.log('Datos válidos recibidos:', datos);
} captura (error) {
console.error('Se detectó alucinación o truncamiento del modelo:', error.message);
}
Optimización avanzada: el truco de la pestaña
Si está obsesionado con la optimización (y en el mundo de los LLM, probablemente debería estarlo), puede obtener aún más eficiencia eligiendo sabiamente sus delimitadores.
Las comas son estándar, pero las tabulaciones (\t) a menudo se representan como un solo token en muchos vocabularios de tokenizadores. Además, las pestañas rara vez aparecen dentro de campos de texto natural, lo que reduce la necesidad de caracteres de escape (como envolver cadenas entre comillas).
Puede codificar sus datos usando pestañas antes de enviarlos al modelo:
Solo recuerde informar al modelo en el mensaje: "Los datos están separados por tabulaciones". Esto crea una representación hipercompacta que es increíblemente fácil de analizar y generar para el modelo.
const toonPrompt = codificar(datos, { delimitador: '\t' });
Un ejemplo completo de flujo de trabajo
Veamos un escenario del mundo real: filtrar registros del sistema. Desea enviar registros sin procesar al modelo y obtener una lista estructurada de errores.
El aviso:
El resultado del modelo:
Registros del sistema en formato TOON (separados por tabulaciones):
eventos[4]{id,nivel,mensaje,marca de tiempo}:
1, error, tiempo de espera de conexión, 2025-01-15T10:00:00Z
2,advertir,consulta lenta,2025-01-15T10:05:00Z
3,info,Inicio de sesión de usuario,2025-01-15T10:10:00Z
4, error, error de base de datos025-01-15T10:15:00Z
Tarea: Extraer todos los eventos con nivel 'error'. Devuelve el resultado como TOON válido con un recuento de encabezados actualizado.
El resultado:
eventos[2]{id,nivel,mensaje,marca de tiempo}:
1, error, tiempo de espera de conexión, 2025-01-15T10:00:00Z
4,error,Error de base de datos,2025-01-15T10:15:00Z
El modelo filtró correctamente la lista y, lo más importante, actualizó el encabezado a "eventos [2]". Al decodificar esta respuesta, obtiene una matriz limpia y con seguridad de tipos lista para la lógica de su aplicación.
Resumen
TOON cierra la brecha entre la legibilidad humana y la eficiencia de las máquinas. Respeta las limitaciones de costos de los LLM y al mismo tiempo proporciona la estructura necesaria para un desarrollo de software sólido.
- Manténgalo pequeño: Utilice de 2 a 5 filas en sus ejemplos; el modelo se generalizará.
- Sea explícito: Defina los encabezados claramente para que el modelo conozca el esquema.
- Validar estrictamente: Utilice los metadatos del formato para detectar errores de generación.
Al alejarse de JSON para sus cargas útiles inmediatas, no solo está ahorrando tokens, sino que también está construyendo un canal de IA más confiable.