Configuración para mantener el gasto mensual de API de Anthropic por debajo de los 200 mil wones tras la reforma de tarifas
Para los freelancers o equipos pequeños que trabajan con un presupuesto de desarrollo mensual inferior a 500 mil wones, el reciente cambio en las políticas de Anthropic resulta bastante molesto. Se han impuesto restricciones en el uso de herramientas de terceros, y los créditos restantes de cada mes ya no se transfieren al mes siguiente, sino que desaparecen por completo. Sin embargo, si te limitas a usar únicamente el cliente oficial sin pensar, las facturas de la API superan fácilmente los cientos de miles de wones con tan solo unas pocas sesiones de codificación.
El problema no se soluciona simplemente cambiando de herramienta; es necesario revisar la estructura misma en la que se intercambian los prompts para poder proteger el saldo de tu cuenta bancaria.
Revisar los registros de consumo de tokens y corregir primero la tasa de aciertos de caché
Las herramientas de codificación basadas en agentes envían decenas de miles de tokens de contexto de una sola vez por cada solicitud. Al consultar la tabla de tarifas oficiales de Anthropic, el costo de entrada básico para Claude 3.5 Sonnet es de $3.00 por millón de tokens, y la salida es de $15.00. Por el contrario, al aplicar el almacenamiento en caché de prompts, el costo unitario de entrada se reduce a $0.30, lo que representa una diferencia del 90%. En el momento en que una extensión de terceros inserta una marca de tiempo o un ID de sesión en la parte superior del prompt del sistema, toda esta caché se invalida y se pagan $3.00 en cada ocasión.
Lo primero que se debe hacer es abrir los registros de los últimos 3 meses y calcular la proporción de cache_read_input_tokens en relación con los tokens de entrada.
- En los proyectos donde la tasa de aciertos de caché sea inferior al 40%, se debe revisar el método de inyección de prompts.
- En lugar de transmitir todo el código base en cada solicitud, se debe modificar para que solo se pase al contexto los archivos modificados basándose en
git diff.
- Se deben colocar reglas fijas en la parte superior del prompt del sistema y declarar
cache_control: {"type": "ephemeral"}.
Con tan solo mover las variables dinámicas hacia la parte inferior del prompt y almacenar en caché el texto estático, se puede reducir casi a la mitad el desperdicio de tokens en segundo plano.
Dividir los modelos según la dificultad de la tarea utilizando el proxy LiteLLM
No es necesario escribir cada línea de código con Sonnet o Opus. Llamar a un modelo de vanguardia en la nube para el autocompletado de pestañas es un desperdicio evidente.
| Clasificación de tareas |
Modelo de llamada |
Ubicación de ejecución |
Nivel de costos |
| Diseño de arquitectura y refactorización a gran escala |
Claude 3.5 Sonnet |
API en la nube |
Tarifa estándar (100%) |
| Funciones utilitarias simples y pruebas unitarias |
Claude 3.5 Haiku, DeepSeek-V3 |
API en la nube |
Del 20% al 30% |
| Autocompletado de pestañas en tiempo real y código repetitivo (boilerplate) |
Ollama (Qwen2.5-Coder 14B) |
Local en el dispositivo (On-Device) |
$0.00 |
Se configura LiteLLM en la máquina local para que actúe como una pasarela de tráfico y se escriben las reglas de enrutamiento de modelos en config.yaml.
`yaml
model_list:
- model_name: smart-model
litellm_params:
model: anthropic/claude-3-5-sonnet-20241022
api_key: os.environ/ANTHROPIC_API_KEY
- model_name: fast-model
litellm_params:
model: deepseek/deepseek-chat
api_key: os.environ/DEEPSEEK_API_KEY
- model_name: local-coder
litellm_params:
model: ollama/qwen2.5-coder:14b
api_base: http://localhost:11434
`
Se especifica export ANTHROPIC_BASE_URL="http://localhost:4000" en la terminal y se conecta con Continue.dev o Claude Code. El autocompletado en tiempo real se procesa con el modelo Qwen de la GPU local, mientras que solo las preguntas de diseño complejo se envían a Sonnet.
También se lleva a cabo en paralelo la tarea de reducir los tokens de salida. Si se configuran los prompts del sistema para omitir por completo las introducciones innecesarias, los saludos y las explicaciones de código, devolviendo únicamente los bloques de código, se reduce drásticamente el gasto en tokens de salida, que tienen un costo unitario elevado.
Transferir y agotar los créditos mensuales restantes mediante la API por lotes (Batch API)
Los créditos mensuales de Anthropic simplemente se evaporan una vez que pasa la fecha de expiración. Para evitar desperdiciar el saldo restante, se debe ejecutar la API por lotes de Anthropic 3 días antes de su vencimiento.
La API por lotes ofrece un descuento del 50% en todos los precios de los tokens bajo la condición de una devolución asincrónica en un plazo de 24 horas. Si a esto se le suma el almacenamiento en caché de prompts, el procesamiento se puede realizar a un nivel del 5% del precio original. Se agrupan aquellas tareas que no requieren una respuesta inmediata en tiempo real y se envían de una sola vez.
- Análisis estático de todo el código base y revisión de vulnerabilidades de seguridad.
- Generación masiva de código de pruebas unitarias para código heredado.
- Actualización automática de especificaciones de endpoints de API y documentación técnica.
Al empaquetar estas tareas en un archivo JSONL y enviarlas al endpoint por lotes, es posible convertir los créditos que estaban a punto de desperdiciarse en valiosos activos de pruebas y documentación.
Fijar el límite de gasto y la ruta de desvío local
Para prevenir cargos excesivos, se debe desactivar la recarga automática (Auto-Recharge) en la configuración de facturación de la consola de Anthropic y realizar un pago manual de alrededor de $150 al inicio del mes.
Tras limitar el límite de llamadas directas a $150 en el menú Spend Limits de la consola, se añade una configuración de recuperación ante fallos (Fallback) en el proxy LiteLLM.
`yaml
router_settings:
fallbacks:
- claude-3-5-sonnet-20241022: ["ollama/qwen2.5-coder:14b"]
`
Incluso si los créditos se agotan y se produce un error 429, el modelo local Ollama asumirá las llamadas de inmediato. Si se trabaja en equipo, se puede compartir .continue/config.json en la raíz del repositorio de Git y asignar un límite mensual de $50 para la clave virtual (Virtual Key) de cada miembro en la página de administración de LiteLLM. Como solo el tráfico del desarrollador que exceda el límite se desviará al modelo local, se evitará que el gasto total del equipo supere el presupuesto.