Savings Layer forma parte de la plataforma BiVelio
La capa, explicada · sin jerga

¿Dónde se instala el ahorro?

BV‑SALA no es una app, ni una extensión, ni un ajuste de ChatGPT. Es una pieza de código que un desarrollador coloca dentro de su propia aplicación, justo donde esa aplicación llama a la API de tu proveedor. Solo puede ahorrar donde existe una factura por tokens — y solo puede medirlo donde ve pasar cada petición.

La capa vive dentro de tu código

La misma llamada, con y sin la capa. El tráfico siempre viaja directo de tu aplicación al proveedor — BV‑SALA no es un servidor intermedio ni ve tus datos desde fuera.

Sin BV‑SALA
Tu aplicación
cada petición sale entera
API del proveedor
OpenAI · endpoints compatibles
$100
factura / mes
Con BV‑SALA
Tu aplicación
mismo código de negocio
BV-SALA
evita llamadas · recorta la entrada
API del proveedor
recibe menos tokens
Depende
de cuánto repita tu tráfico

Ese recuadro verde es un paquete npm dentro del código de la aplicación. Por eso la pregunta clave nunca es «¿qué instalo?» sino «¿quién escribió el código que llama a la API?» — esa persona es quien puede instalarlo. Las excepciones son un terminal de codificación como Claude Code y una app en cualquier lenguaje que use el SDK oficial de OpenAI o de Anthropic y deje fijar su base URL: ahí el gateway de bvsala se pone delante sin tocar ni una línea de código. Ese tráfico se mide para los modelos con precio de lista; las palancas de ahorro del paquete npm no corren ahí, y las del propio gateway solo se aplican al tráfico de Anthropic, con licencia PRO.

Tu caso, en 10 segundos

Cuatro maneras de usar IA, y qué puede hacer BV‑SALA en cada una.

ChatGPTapp o web, gratis o de pago
Nada que instalar

Pagas una cuota fija (o nada): no existe una factura por tokens que reducir, y es un producto cerrado en el que nadie puede colocar software entre la app y sus modelos. El ahorro de BV‑SALA no aplica aquí — y ningún producto puede prometerlo ahí con honestidad.

Claudeclaude.ai, gratis o de pago
Skill disponible

Suscripción fija: sin factura de tokens que medir — pero con topes (la ventana de cinco horas y el semanal). Justo para eso está el skill savings-mode: gratis, se sube a claude.ai en un minuto y ataca las dos masas que queman tope. Su efecto se publicará cuando esté medido — nunca antes.

Claude Codeterminal, con clave de API
Ya mide

Con suscripción hay cuota fija — y topes: el mismo skill se instala con un solo comando y estira el mismo tope semanal. Con clave de API hay una factura por tokens real — y el medidor ya está en marcha: con tu licencia BiVelio, «bvsala claude» lanza Claude Code a través del gateway local y tu gasto aparece en el panel, token a token, sin tocar una línea de código. Con PRO, en modelos de Anthropic, pasa además las escrituras de caché del TTL de una hora al de cinco minutos solo en los turnos en que una parte grande del prompt es nueva (el primero de una sesión, una compactación): un ahorro calculado sobre el conteo de tokens de tu propio proveedor, nunca sobre una estimación.

Tu aplicacióntu código + tu clave de API
Aquí sí

El caso para el que existe BV‑SALA. Tu app llama a la API con tu clave, el proveedor factura cada token, y la capa se instala en tres pasos: paquete, licencia y envolver la llamada. Desde la primera petición devuelve un SavingsReport con el ahorro, separado en medido y estimado.

Estimación vs. medición

El producto tiene dos cifras distintas y conviene no mezclarlas.

Antes de instalar
Estimación

La licencia Medir, gratis, ejecuta la capa en modo sombra con tu propio tráfico y te enseña lo que habría ahorrado, petición a petición. No cambia nada ni aplica nada: por eso lleva la etiqueta «estimación».

Después de instalar
Medición real

Cada llamada devuelve un SavingsReport: las llamadas que nunca pagaste y el ahorro neto por petición. Auditable, petición a petición, en tu propia infraestructura.

La instalación completa, si desarrollas una app

# 1 · el paquete
pnpm add @bivelio/savings-layer

# 2 · la licencia (de tu dashboard)
export BIVELIO_LICENSE_KEY=…

# 3 · envolver la llamada — esto es todo el cambio de código
const layer = createSavingsLayer({ provider, licenseKey, … });
const { text, report } = await layer.generate({ model, messages });

console.log(report.cost.netSavingsRatio)  // ← el ahorro, medido