Los modelos de lenguaje cobran y limitan por tokens, no por palabras ni por caracteres. Un token es el fragmento de texto con el que trabaja el modelo: en inglés equivale a unos 4 caracteres de media, y en español la cifra es parecida en prosa corriente, aunque las frases cortas, la puntuación y las palabras poco frecuentes se parten en más piezas. Para saber cuánto cuesta una llamada hay que contar los tokens de la entrada (tu prompt más el contexto) y los de la salida (la respuesta), que suelen tener precios distintos, y multiplicarlos por la tarifa por millón de tokens del modelo.
Este artículo explica cómo contar tokens de forma exacta o aproximada según el modelo, qué cifras esperar en español, dónde se esconden los tokens que no ves y cómo reducir la factura.
Por qué tokens y no palabras
Como explicamos en cómo funciona un modelo de lenguaje, el modelo no ve letras ni palabras sino tokens de un vocabulario fijo construido durante el entrenamiento. El coste computacional de procesar un texto depende del número de tokens, así que el precio y los límites (ventana de contexto, longitud máxima de respuesta) se expresan en esa unidad.
Consecuencia práctica: el mismo texto cuesta distinto según el idioma y según el modelo, porque cada familia tiene su tokenizador.
Cómo contar tokens
Modelos de OpenAI: recuento exacto
OpenAI publica sus tokenizadores. o200k_base es el de GPT-4o y modelos posteriores; cl100k_base el de GPT-4 y GPT-3.5. Puedes contar en local con tiktoken (Python) o gpt-tokenizer (JavaScript):
import { encode } from 'gpt-tokenizer'; // o200k_base por defecto
const tokens = encode('La indexación no está garantizada.');
console.log(tokens.length); // 8
import tiktoken
enc = tiktoken.get_encoding("o200k_base")
len(enc.encode("La indexación no está garantizada.")) # 8
El contador de tokens de AIMRAN Tools usa esos mismos tokenizadores en el navegador y muestra el recuento para o200k y cl100k, los caracteres por token del texto que pegues y el coste estimado si introduces la tarifa por millón de tokens del modelo. El texto no sale de tu equipo.
Claude y otros modelos: estimación o API
Anthropic no publica el tokenizador de Claude; para un recuento exacto hay que llamar a su endpoint de recuento de tokens, que no cuesta tokens de generación. Para estimar sin llamar a la API, la práctica habitual es partir del recuento de cl100k y aplicar un factor de corrección; es lo que hace la herramienta de AIMRAN Tools, que marca esa cifra como aproximada. Para presupuestar basta; para facturar, usa la API.
Cuántos tokens tiene un texto en español
Como orientación, medido con o200k_base al escribir este artículo:
| Texto | Caracteres | Tokens | Caracteres por token |
|---|---|---|---|
| «Hola, ¿qué tal?» | 15 | 6 | 2,5 |
| «Hello, how are you?» (inglés, para comparar) | 19 | 6 | 3,2 |
| El primer párrafo de este artículo | 590 | 127 | 4,6 |
Las frases cortas salen caras en proporción (la puntuación y los signos de apertura cuentan como tokens propios); en prosa larga la media se acerca a los 4–4,5 caracteres por token tanto en inglés como en español. El primer párrafo de este artículo tiene 105 palabras y 127 tokens, es decir, ≈ 1,2 tokens por palabra. El código JSON y las URL son bastante más caros porque cada símbolo de puntuación suele ser un token.
Los tokens que no ves
Al estimar el coste de una llamada es fácil olvidar que la entrada no es solo tu pregunta:
- El system prompt y las instrucciones fijas de la aplicación, que viajan en cada petición.
- El historial de la conversación, que se reenvía completo (o resumido) en cada turno. Una conversación larga puede costar más por el historial que por la pregunta nueva.
- Las descripciones de herramientas en agentes y los resultados que devuelven.
- Los documentos adjuntos (RAG): un PDF de veinte páginas son miles de tokens por llamada si lo incluyes entero.
- Tokens de formato que el proveedor añade por mensaje (unos pocos por turno).
- La salida, que casi siempre tiene un precio por token más alto que la entrada y que puedes limitar con el parámetro de máximo de tokens.
Las respuestas de la API devuelven el uso real (usage con tokens de entrada y salida): registra esos valores para no depender de estimaciones.
Cómo calcular el coste
coste = (tokens_entrada / 1 000 000) × precio_entrada + (tokens_salida / 1 000 000) × precio_salida
Los precios varían entre modelos en más de un orden de magnitud y cambian cada pocos meses, así que tómalos siempre de la página de precios del proveedor en el momento de calcular. Muchos proveedores ofrecen además caché de prompt: la parte repetida (system prompt, documentos) se cobra mucho más barata si se reutiliza en llamadas cercanas, lo que cambia bastante la cuenta en aplicaciones con contexto fijo grande.
Cómo reducir tokens sin perder calidad
- Recorta el system prompt: elimina repeticiones y ejemplos que el modelo ya no necesita.
- Resume el historial a partir de cierto número de turnos en lugar de reenviarlo entero.
- Trocea los documentos y envía solo los fragmentos relevantes (búsqueda previa) en lugar del documento completo.
- Pide salidas concisas y fija un máximo de tokens de respuesta razonable.
- Usa el modelo adecuado: clasificar o extraer datos no necesita el modelo más caro.
- Aprovecha la caché de prompt colocando la parte estable al principio.
- Mide antes de optimizar: pega el prompt real en un contador y mira dónde se van los tokens; a menudo es en un ejemplo largo o en un JSON sin minimizar.
Conclusión
Contar tokens es la única forma de saber qué cuesta y qué cabe en una llamada. Para los modelos de OpenAI el recuento es exacto con sus tokenizadores públicos; para Claude, aproximado salvo que uses su API de recuento. En español calcula entre 1,6 y 2 tokens por palabra, recuerda que el historial y el system prompt también cuentan, y registra el uso real que devuelve cada respuesta: es el dato que acaba en la factura.