La API de Doubao se ofrece a través de Volcano Ark, y la factura no es un importe fijo por llamada: depende de los tokens de entrada, los tokens de salida, la caché, el modo de inferencia y los recursos reservados. Muchos equipos presupuestan con un precio unitario único y descubren después que el costo real es más alto; la causa no suele ser una subida de precio del modelo, sino una estructura de entrada, una tasa de acierto de caché y un modo de llamada distintos de los que se usaron para estimar.

Este artículo descompone la facturación de la API de Doubao en partes verificables una por una y propone un orden para estimar y reducir costos. Los precios unitarios concretos se rigen por los precios de modelos del sitio y por la página oficial de precios de Volcano Ark; tanto los importes como las reglas pueden cambiar.

Nota: Doubao, Volcano Ark y Volcengine son marcas de sus respectivos titulares. Este artículo es solo una explicación técnica y no implica ninguna relación de colaboración; las reglas de facturación y emisión de facturas se rigen por las páginas oficiales.

1. De qué se compone la factura

La inferencia en línea de Volcano Ark se cobra por uso de tokens, pero la factura completa también puede incluir almacenamiento de caché, procesamiento por lotes, paquetes de capacidad y ajuste fino.

Concepto Cuándo se genera Unidad Nota
Entrada (sin acierto de caché) El prompt entra por primera vez en el contexto Token Corresponde a prompt_tokens
Entrada (con acierto de caché) Se reutiliza un prefijo cacheado antes Token Corresponde a cached_tokens; el precio suele ser menor
Almacenamiento de caché Al activar la caché de contexto Token × hora Se calcula por el máximo almacenado dentro de cada hora natural
Salida El modelo genera texto o resultados estructurados Token Corresponde a completion_tokens
Procesamiento por lotes Tareas offline en lote Token Tiene precio propio y suele no descontar la cuota gratuita
Paquete de capacidad TPM Throughput reservado por minuto Duración de compra Se cobra aunque no se llame
Unidad de modelo Capacidad de cómputo dedicada Duración de compra Se cobra aunque no se llame
Ajuste fino Fase de entrenamiento Token × épocas o cómputo Se factura aparte de la inferencia

Conviene separar desde el principio los costos variables («pago por uso») de los fijos («compro y pago»), para que el presupuesto no omita partidas. Los primeros fluctúan con el tráfico; los segundos son costo fijo.

2. Cómo se calculan entrada y salida

La entrada es todo lo que entra en el contexto de la solicitud: system prompt, historial de mensajes, definiciones de herramientas, documentos recuperados, imágenes y otros contenidos multimodales. Todo se convierte a tokens y se cobra al precio de entrada. La salida es lo que el modelo genera realmente y se cobra al precio de salida, normalmente más alto.

Algunos detalles que se pasan por alto con facilidad:

  • En un diálogo de varios turnos, si cada vez se envía el historial completo, los tokens de entrada se acumulan en lugar de contarse solo con la última frase.
  • El esquema de las herramientas y la descripción de funciones también ocupan tokens de entrada; cuantas más herramientas, mayor el costo fijo.
  • Las entradas multimodales, como imagen y audio, se convierten según reglas; no se estiman solo por la longitud del texto.
  • El contenido de razonamiento de los modelos de razonamiento suele contarse como salida; el criterio exacto se rige por la explicación oficial de facturación.

Por eso el presupuesto no debe limitarse a preguntar «cuánto cuesta la entrada y cuánto la salida», sino también «en mis solicitudes, qué proporción ocupa cada una». Un bot de atención al cliente tiene mucha entrada y salida corta; la generación de textos largos es lo contrario. Las estructuras de costo son completamente distintas.

3. Caché de contexto: ahorra, pero también cuesta

La caché de contexto reutiliza prefijos estables. Cuando dos solicitudes empiezan exactamente igual, la parte que acierta se cobra al precio reducido de caché y solo el contenido nuevo se cobra como entrada normal. Pero no es gratuita:

  1. El acierto de caché se cobra según cached_tokens, a un precio inferior al de entrada normal, pero no es cero.
  2. El almacenamiento de caché se cobra por hora, normalmente según el máximo de tokens almacenados en cada hora natural.
  3. La caché es de mejor esfuerzo y no asegura un acierto; con una tasa baja, el costo de almacenamiento puede superar el ahorro en entrada.

La forma de lograr que la caché realmente ahorre es colocar el contenido estable al inicio de la solicitud: system prompt fijo, definiciones de herramientas fijas y prefijo de conocimiento fijo; y dejar marcas de tiempo, ID aleatorios, nombres de usuario y resultados de búsqueda dinámica al final. Si cada solicitud del negocio es completamente distinta, conviene desactivar la caché al principio y decidir después de observar la factura.

4. En línea, por lotes o paquete de capacidad

Volcano Ark ofrece varios modos de inferencia, con precios y escenarios diferentes:

  • Inferencia en línea con pago por tokens: para negocios con tráfico incierto y requisitos de latencia moderados; no se cobra si no se llama y las cuentas nuevas suelen tener una cuota gratuita descontable.
  • Procesamiento por lotes: para etiquetado offline, moderación de contenido, resúmenes masivos y tareas que no requieren respuesta en tiempo real; suele ser más barato, pero no admite el descuento de la cuota gratuita.
  • Paquete de capacidad TPM: para producción con tráfico previsible que necesita throughput estable; se compra por día o por hora y se cobra aunque no haya llamadas.
  • Unidad de modelo: ofrece cómputo dedicado y encaja en modelos ajustados o necesidades especiales de concurrencia; es un costo fijo.

Al elegir, no compares solo el precio unitario. El procesamiento por lotes es más barato, pero entrega resultados con demora; el paquete de capacidad es estable, pero también consume presupuesto cuando está ocioso. Clasificar el negocio en «tiempo real / offline» y «tráfico previsible o no», y luego asignar el modo de cobro, suele ser más eficaz que cambiar de modelo sin más.

5. Una estimación real con el campo usage

No adivines los tokens por el número de caracteres. Registra el usage que devuelve cada respuesta y, tras una semana de observación, tendrás la estructura real de tu negocio.

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["ARK_API_KEY"],
    base_url="https://ark.cn-beijing.volces.com/api/v3",
)

resp = client.chat.completions.create(
    model=os.environ["ARK_ENDPOINT_ID"],  # ID de endpoint de inferencia o de modelo, según la consola
    messages=[
        {"role": "system", "content": "Eres un asistente de atención al cliente. Responde en tres frases como máximo."},
        {"role": "user", "content": "¿Se puede cambiar la dirección después de enviar el pedido?"},
    ],
)

print(resp.usage)  # Registra entrada, salida y campos de caché

La estimación sigue este orden:

  1. Fija el criterio de registro: fecha, proyecto, modelo, tokens de entrada, tokens de salida, aciertos de caché, si hubo streaming y número de reintentos.
  2. Toma una muestra de una semana y calcula la entrada y la salida medias por escenario; no uses el promedio global del sitio.
  3. Calcula el costo por llamada como «entrada × precio de entrada + salida × precio de salida», y aparte la parte con acierto de caché a un precio menor.
  4. Multiplica por el volumen diario medio y por 30 para obtener el costo mensual de inferencia.
  5. Suma las partidas fijas: almacenamiento de caché, tareas por lotes, paquetes de capacidad o unidades de modelo.
  6. Reserva un margen para cubrir reintentos, picos y ajustes de precio.
  7. Cada mes, contrasta con la factura real y corrige el modelo de estimación.

Si la respuesta no trae el desglose de caché, registra la entrada y la salida totales y deduce el resto con la factura o la página de consumo. Lo importante es mantener un criterio coherente y no comparar datos de entradas o fechas distintas.

6. El orden del control de costos no se invierte

  1. Cuantifica primero: desglosa la estructura real de tokens por proyecto, modelo y escenario, y localiza las tres llamadas más caras.
  2. Sube después el acierto de caché: coloca los prefijos estables al inicio, reduce el contenido dinámico y observa cómo cambia la tasa de acierto.
  3. Reduce luego la entrada: recupera solo fragmentos relevantes, resume el historial y conserva solo los campos necesarios de los resultados de herramientas.
  4. Limita la salida: define un max_tokens razonable y pide JSON o campos fijos para reducir explicaciones repetidas.
  5. Divide por modelo: clasificación, extracción y reescritura con modelos ligeros; el razonamiento complejo, con modelos mayores.
  6. Pasa las tareas offline a lotes: lo que no requiere respuesta inmediata va a procesamiento por lotes, fuera de las horas punta.
  7. Negocia el precio unitario al final: si la entrada no está gobernada y la caché no acierta, cambiar a un modelo más barato no reduce el costo.

7. Cómo gestionar presupuesto y factura

  • Una clave por proyecto, con prueba y producción separadas, para que no compitan por la misma cuota.
  • Define límites de gasto y alertas de saldo por clave, de modo que las llamadas anómalas se contengan a tiempo.
  • Concilia cada semana por «proyecto, modelo y escenario» y detecta las llamadas que más crecen.
  • Registra por separado el ahorro de caché, lotes y enrutamiento de modelos; de lo contrario no podrás demostrar que la optimización funciona.
  • Los equipos que necesitan pago en moneda local, factura unificada y comprobante pueden integrarse con ZSQH AI Gateway, compatible con OpenAI; los precios y el criterio de cobro se rigen por los precios de modelos.

Preguntas frecuentes

¿La API de Doubao tiene cuota gratuita?

La inferencia en línea suele incluir una cuota gratuita para cuentas nuevas que descuenta el consumo por tokens; el procesamiento por lotes y el ajuste fino normalmente no la admiten. La cuota y su vigencia se rigen por la consola de Volcano Ark.

¿Por qué también se cobra el almacenamiento de caché?

La caché ocupa recursos de almacenamiento en el servidor, así que además del costo de los tokens con acierto se cobra por volumen y tiempo. Si la tasa de acierto es baja, optimiza primero la estructura del prefijo y desactiva la caché si es necesario.

¿El procesamiento por lotes siempre es más barato?

Su precio por token suele ser menor, pero no devuelve resultados en tiempo real y no admite la cuota gratuita. Encaja en tareas offline, no en atención al cliente en línea con baja latencia.

¿Se cobran las solicitudes reintentadas?

Si el servidor completa la inferencia y genera tokens, normalmente se cobra, aunque el cliente no reciba el resultado por un timeout. Si se cobra una solicitud fallida depende de la factura y de la explicación oficial; el reintento debe incluir retroceso y un límite máximo.

¿Por qué mi estimación no coincide con la factura?

Las omisiones habituales son historial de mensajes, definiciones de herramientas, conversión multimodal, almacenamiento de caché, reintentos y la parte fija de los paquetes de capacidad. Solo comparando el ID de solicitud con el registro de consumo se localiza la diferencia.

Siguiente paso

Crea primero una clave de prueba en ZSQH AI Gateway, ejecuta tareas reales durante una semana, registra entrada, salida y aciertos de caché, y luego convierte el presupuesto según los precios de modelos. La disponibilidad y los precios de los modelos se rigen por la página de precios.

Artículos relacionados: