IA · Datos
Domar la jungla de datos: JSON como contrato entre tus sistemas y la IA.
La IA funciona con datos que casi nunca caben en filas y columnas. En 2024 escribí sobre JSON como una herramienta práctica para ese problema. Desde entonces se volvió mucho más: JSON es hoy la forma en que el software y los modelos de IA se comunican, desde las salidas estructuradas y las llamadas a herramientas hasta la memoria y la configuración de los modelos.
Define un JSON Schema para lo que esperas de un modelo, pídele que lo siga y valida cada respuesta antes de usarla. El mismo patrón impulsa las salidas estructuradas, las llamadas a herramientas y protocolos de agentes como MCP. Guarda también la memoria conversacional y la configuración de los modelos en JSON versionado, para que tu sistema de IA siga siendo predecible y fácil de depurar.
Más allá de filas y columnas
El modelo relacional de Edgar F. Codd sigue siendo la base de la mayoría de los sistemas de negocio, y con razón. Pero las aplicaciones de IA trabajan con mucho más que tablas:
- Datos estructurados: pedidos, clientes e inmuebles en bases de datos relacionales.
- Datos semiestructurados: JSON de APIs, eventos y logs, donde los campos cambian de un registro a otro.
- Datos no estructurados: texto libre, documentos e imágenes.
Los datos del mundo real también rompen los supuestos del diseño relacional. En áreas como la biometría o la publicidad en línea, muchas veces no hay un identificador único confiable, así que los registros se tienen que relacionar por probabilidad y no por una llave. Manejar esto bien exige un buen tratamiento de datos y, cada vez más, modelos de IA capaces de leer y estructurar información desordenada.
Por qué JSON se volvió el idioma de las aplicaciones de IA
JSON es liviano, legible para las personas y compatible con todo. Esas cualidades lo convirtieron en el estándar de las APIs web. En IA resuelve un problema más grande: convertir el texto libre de un modelo en algo en lo que el software pueda confiar.
1. Salidas estructuradas
Los principales proveedores de modelos ya permiten restringir la respuesta de un modelo a un JSON Schema que tú defines. En lugar de interpretar texto y cruzar los dedos, recibes una respuesta con la forma que definiste, que luego validas en código. En Python, Pydantic es la forma habitual de definir el esquema y verificar el resultado; en TypeScript, Zod cumple el mismo papel.
2. Llamadas a herramientas y agentes
Cuando un modelo decide llamar una función, como buscar en una base de datos o crear un ticket, produce los argumentos como un JSON que coincide con el esquema de la herramienta. Frameworks de agentes como LangGraph y Pydantic AI están construidos alrededor de esto. El Model Context Protocol (MCP), hoy una forma común de conectar asistentes de IA con herramientas y datos, usa por debajo mensajes JSON-RPC.
3. Memoria conversacional
Un asistente útil recuerda el contexto: tus preferencias, lo último que preguntaste, lo que sigue pendiente. Guardar eso como un objeto JSON pequeño y bien definido por usuario o por sesión hace que la memoria sea explícita y fácil de inspeccionar. Para historiales largos, combínalo con búsqueda vectorial (por ejemplo pgvector en PostgreSQL, o Elasticsearch) para recuperar solo las partes relevantes.
4. Configuración de modelos y reproducibilidad
Los modelos de aprendizaje profundo funcionan con tensores, pero todo lo que los rodea es configuración: parámetros de la arquitectura, hiperparámetros de entrenamiento, parámetros de ajuste fino y resultados de evaluación. Guardarlos en JSON hace que los experimentos sean transparentes y repetibles. El ecosistema de Hugging Face funciona así: un modelo trae su configuración en un archivo config.json junto a sus pesos, normalmente guardados como safetensors. Herramientas como MLflow registran ejecuciones y parámetros con la misma lógica.
Un ejemplo práctico: búsqueda en lenguaje natural
En Fincaraiz construimos una búsqueda que entendía consultas conversacionales y nombres locales de lugares (lo cuento en el caso de la migración). Con los modelos de hoy, el primer paso de ese tipo de búsqueda, convertir una frase en filtros, toma unas pocas líneas. Primero, define cómo se ve una búsqueda:
from typing import Literal
from pydantic import BaseModel, Field
class PropertySearch(BaseModel):
operation: Literal["buy", "rent"]
property_type: Literal["apartment", "house", "lot", "commercial"]
bedrooms: int | None = None
location: str = Field(description="Barrio, ciudad o punto de referencia, tal como lo escribió el usuario")
max_price_cop: int | None = Field(None, description="Precio máximo en pesos colombianos")
schema = PropertySearch.model_json_schema() # se envía al modelo como formato de salida obligatorio
Un usuario escribe: "apartamento de 3 habitaciones para comprar en Chapinero, por menos de 500 millones". Con salidas estructuradas, el modelo responde:
{
"operation": "buy",
"property_type": "apartment",
"bedrooms": 3,
"location": "Chapinero",
"max_price_cop": 500000000
}
Luego se valida antes de que llegue al motor de búsqueda:
search = PropertySearch.model_validate_json(model_response)
# lanza un error claro si falta un campo o tiene el tipo equivocado
El modelo se encarga del lenguaje. Tu código y tus datos siguen encargándose del resto: resolver "Chapinero" a su límite exacto en el mapa, aplicar los filtros y ordenar los resultados. Esa división es lo que hace confiables las funcionalidades con IA.
Prácticas que lo mantienen confiable
- Primero el esquema. Acuerden la forma del JSON antes de escribir prompts o código.
- Valida todo. Trata la salida del modelo como una entrada de usuario: verifícala y ten un plan B cuando falle.
- Versiona tus esquemas. Cambiar un campo es un cambio que rompe todo lo que depende de él.
- Deja fuera los datos sensibles. No guardes datos personales en objetos de memoria ni en logs a menos que los necesites y los protejas.
- Registra entradas y salidas. Los ejemplos reales se convierten en el conjunto de prueba de tus evaluaciones.
Los asistentes de programación con IA también ayudan aquí. Son buenos redactando esquemas, ejemplos de datos, fixtures de prueba y scripts de transformación a partir de una descripción corta, lo que elimina buena parte del trabajo tedioso. Las decisiones de diseño, y la revisión, siguen siendo del ingeniero.
La conclusión
Manejar bien datos diversos era la base del trabajo con IA en 2024, y lo sigue siendo. Lo que cambió es que JSON ahora está en el centro, como el contrato entre tus sistemas y los modelos que usan. Ya sea que construyas un asistente, un sistema de recomendación o un agente, hacer bien ese contrato es lo que convierte una demo impresionante en software en el que la gente puede confiar.
Una primera versión de este artículo se publicó en inglés en LinkedIn.
Recibe mis próximos casos y artículos en la Búsqueda de Google.