BlogTokens y costos

Ocho entre 7,527

Medimos 89,371 mensajes sin IA y reservamos el análisis para ocho conversaciones graves

Nicolás Biondi

Un campo oscuro de miles de puntos de luz tenues, con unos pocos iluminados en ámbar por haces verticales.

Revisar una sola conversación de WhatsApp con IA nos costaba cerca de 33 mil tokens y entre 20 y 30 segundos. El cliente tenía 7,527 conversaciones de unos dos meses, y trabajábamos con una cuenta de IA con tope de uso, no con una API key que cobra por token. Pasar las 7,527 por el modelo era como pedirle a un solo técnico del taller que revise cada cámara de Lima: puede empezar, nunca termina.

Lo que el cliente quería saber era concreto: cuánto tardaban en responder, cuántas personas se quedaban esperando, cuántas escribían de madrugada. Mi primer reflejo fue buscar un modelo más barato que aguantara el volumen. Hice la cuenta y tampoco cerraba. El proyecto se destrabó cuando acepté que casi todas esas preguntas se contestan con aritmética.

Meme Drake Hotline Bling: Pagar tokens por 7,527 chats / Una consulta SQL y dos horas de paciencia Pagar tokens por 7,527 chats Una consulta SQL y dos horas de paciencia

Un primer piso que no gasta tokens

Saqué una copia de solo lectura de la base viva con VACUUM INTO, una instrucción de SQLite que escribe un archivo limpio aparte: 0.7 s, sin quitarle el candado de la base al proceso que en ese momento atendía los chats.

Sobre esa copia cortamos el historial en conversaciones cada vez que había más de 6 horas de silencio, y etiquetamos los 89,371 mensajes como cliente, bot, humano o sistema con reglas locales. Un mensaje saliente cuenta como bot solo si su texto coincide exacto con una plantilla de respuesta automática del negocio, o si es una foto pegada a menos de 15 segundos de una. El resto de lo saliente queda como humano, y nada de esto llama a un modelo.

Con eso calculamos tiempo de primera respuesta, esperas, abandono y mensajes fuera de horario sobre las 7,527 conversaciones, en SQL puro y repetible. A ese primer piso le decimos Tier 1.

El 43.6% terminó esperando a un humano

El 75.7% de las conversaciones recibió respuesta humana en algún momento y al 24.3% lo atendió solo el bot. El 57.9% empezó fuera del horario de atención. La mediana de primera respuesta humana fue 28 segundos, que suena bien hasta que la cruzas con el 43.6% que cerró con el cliente todavía esperando a un humano.

El triaje decide quién pasa con el especialista

En la compañía de bomberos usamos la palabra triaje para decidir a quién se atiende primero. Acá funciona como el monitor de signos vitales de un hospital: se lo pones a todos porque medir el pulso cuesta casi nada, y al especialista caro lo llamas solo por las fichas que el monitor marcó.

El monitor son señales que no cuestan nada: palabras de sentimiento negativo, conversaciones sin ninguna respuesta humana, esperas de más de 30 minutos e intención de compra. Le sumamos una muestra aleatoria de control, porque una lista armada solo con casos malos confirma la sospecha con la que entraste.

El triaje ordena las candidatas por gravedad y corta la lista en un límite: en esta corrida pasaron ocho conversaciones de los últimos 7 días al Tier 2, el piso caro. Una CLI de IA, el modelo corriendo por línea de comandos, recibe la transcripción etiquetada por rol y devuelve un JSON estricto con resumen, resuelto sí o no, sentimiento del cliente, cuatro notas de 1 a 5, bandera de venta perdida, hallazgos con severidad y bandera de escalamiento. El modelo no le responde a ningún cliente ni toca el chat: entrega una ficha y se va.

7,527 conversaciones

Tier 1 gratis: 100%

43.6% sigue esperando

Candidatas del triaje

8 a Tier 2

Hallazgos cualitativos

El embudo: de 7,527 conversaciones a 8 revisiones con IA

Lo que el SQL no podía ver

En promedio, las ocho dieron tono 2.6 de 5, claridad 2.1 de 5 y resolución 2.4 de 5. El 37.5% quedó marcado como venta perdida y la mitad como caso a escalar.

En esas ocho salieron tres cosas que ninguna consulta SQL habría encontrado: un caso de mal trato a terceros, un dato personal sensible escrito completo dentro del chat, y entregas coordinadas solo por el bot sin que ningún humano confirmara nada.

La mediana de 4 segundos que no me creo

La atribución por plantillas es una heurística y quedó escrita como tal en el README del proyecto. En la ventana más corta que validamos, la mediana de respuesta humana salió en 4 segundos, y para mí eso significa que algunas respuestas de personas se están contando como bot. Lo dejamos anotado como limitación del Tier 1, en el mismo reporte donde aparece el número.

Queda pendiente decidir cómo ocultar los datos personales de las transcripciones, y hay que resolverlo antes de que el Tier 2 entre a producción.

Antes de buscar un modelo más barato, ahora calculo cuánto de la respuesta sale con aritmética, y cada heurística barata viaja con su margen de error en el mismo reporte que la usa. El técnico sigue siendo uno, pero ya no le mando todas las cámaras de Lima: le mando ocho.

triage tokens metrics sqlite privacy