Comprender el modelo de pago por token
La facturación por token significa que solo pagas por lo que consumes, no por el acceso inactivo a un servidor. A diferencia de las suscripciones mensuales tradicionales, este modelo alinea los costos directamente con el volumen de uso. Se te cobra en función de los tokens de entrada y salida reales procesados por el endpoint.
La mayoría de los proveedores cobran tarifas diferentes para tokens de entrada frente a los de salida. Por ejemplo, algunos servicios de LLM sin censura cobran $0,15 por millón de tokens de entrada y $0,50 por millón de tokens de salida. Esta disparidad existe porque generar texto requiere significativamente más potencia de computación que leerlo.
Debes monitorear tus conteos de tokens de cerca. Una sola respuesta larga puede exceder tu costo de entrada si no estimas la longitud de salida. Verifica siempre los metadatos de uso devueltos en los encabezados o el cuerpo de la respuesta para rastrear tus gastos con precisión.
Por qué tu respuesta en streaming se corta antes de tiempo
Las respuestas en streaming se cortan temprano porque los clientes a menudo dejan de escuchar después de los primeros fragmentos. El servidor envía datos en tiempo real, pero tu aplicación podría desconectarse prematuramente si no maneja el flujo correctamente.
Cada fragmento contiene texto parcial. Debes concatenar estos fragmentos para formar la respuesta completa. Si descartas los fragmentos intermedios, pierdes datos. El último fragmento suele contener las estadísticas de uso completas.
Verifica la configuración de tu tiempo de espera. Algunas redes cierran las conexiones después de unos segundos de inactividad. Asegúrate de que tu cliente maneje las pausas intermitentes en el flujo de datos. Esto es común en modelos de lenguaje grandes que generan textos extensos.
stream = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Tell the story in second person."}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
Gestión correcta de la ventana de contexto de 100k
El límite de la ventana de contexto incluye tanto tu prompt como la completación generada. No puedes enviar 100k tokens en el prompt y esperar otros 100k en la respuesta. La longitud combinada total debe permanecer dentro del límite.
Si envías una solicitud grande, tienes menos espacio para la respuesta. Por ejemplo, una solicitud de 90k tokens deja solo 10k tokens para la salida. Esto puede truncar respuestas largas abruptamente.
Implemente el conteo de tokens en su lado. Utilice un tokenizador que coincida con la codificación del modelo. Esto asegura que no exceda el límite durante la solicitud. Si lo hace, el servidor devolverá un error.
Considera truncar los mensajes antiguos en los historiales de chat. Esto mantiene el contexto más reciente mientras se mantiene dentro de los límites. Esto es crucial para mantener la coherencia de la conversación durante sesiones largas.
Recargas: por qué tu saldo no se actualizó
Las recargas en criptomonedas no se actualizan cuando envías tokens a la red incorrecta. Nuestra API acepta USDT en TRC20 y USDC en Base. Enviar USDT en Ethereum a una dirección TRC20 resultará en la pérdida de fondos.
Verifique siempre el prefijo de red antes de enviar. La página de depósito muestra la dirección específica y la red para cada moneda. No asuma que todas las direcciones USDT son intercambiables.
Espere el número requerido de confirmaciones. Las transacciones no son instantáneas. El sistema acredita su cuenta solo después de que la blockchain confirme la transferencia. Esto evita problemas de doble gasto.
Comprueba el hash de la transacción en un explorador de bloques. Si el saldo no se actualiza, proporciona el hash al soporte. Pueden verificar la transferencia manualmente. Esta es la forma más rápida de resolver discrepancias.
Corrección de errores de llamada a funciones en modelos sin censura
Los errores de llamada a funciones suelen derivarse de un formato JSON no estándar en los modelos sin censura. Estos modelos priorizan la creatividad sobre la estructura estricta, lo que puede romper los analizadores rígidos.
Establece el formato de respuesta a json_object para forzar una salida más estricta. Esto reduce la posibilidad de JSON mal formado. Sin embargo, puede reducir ligeramente la creatividad.
Valida la respuesta antes del análisis. Usa un bloque try-catch para manejar errores de decodificación JSON. Si el análisis falla, reintenta con una temperatura más baja. Esto fomenta una salida más determinista.
from openai import OpenAI
client = OpenAI(base_url="https://api.aiapisubscription.com/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)
Límites de tasa: manejo de ráfagas de 300 RPM
Los límites de velocidad restringen cuántas solicitudes puedes enviar por minuto. Nuestra API permite 300 solicitudes por minuto por clave. Exceder este límite devuelve un código de estado 429.
Implementa un retroceso exponencial cuando alcances el límite. Reintenta la solicitud tras un breve retraso. Esto evita sobrecargar el servidor durante los picos de uso.
Monitorea la frecuencia de tus solicitudes. Si envías solicitudes demasiado rápido, podrías activar el límite. Espacia tus solicitudes uniformemente. Esto garantiza un rendimiento constante.
Usa múltiples claves si necesitas mayor rendimiento. Cada clave tiene su propio límite. Esto te permite escalar tu aplicación sin alcanzar un único cuello de botella.
Fallos del modo JSON y formato de respuesta
Los fallos del modo JSON ocurren cuando el modelo devuelve sintaxis inválida. Esto es común en modelos uncensored que priorizan el lenguaje natural sobre los datos estructurados.
Utiliza el response_format parámetro para forzar una salida JSON. Esto indica al modelo que estructure su respuesta como JSON válido. Sin embargo, no garantiza la corrección.
Valida la salida usando un esquema JSON. Esto asegura que los datos coincidan con tu estructura esperada. Si la validación falla, solicita un reintento o ajusta el prompt.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.aiapisubscription.com/v1", apiKey: process.env.API_KEY });
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);
Depuración de discrepancias en el conteo de tokens
Las discrepancias en el conteo de tokens surgen cuando tu cliente utiliza un tokenizador diferente al del modelo. Esto lleva a estimaciones de costos inexactas.
Usa el tokenizador oficial proporcionado por el proveedor del modelo. Esto asegura que tus recuentos coincidan con el uso real. Los tokenizadores de terceros pueden manejar los caracteres especiales de manera diferente.
Comprueba los metadatos de uso en la respuesta. Esto proporciona el recuento exacto de tokens. Compara esto con tu recuento local para identificar discrepancias.
Tener en cuenta los tokens especiales. Estos incluyen prompts del sistema y definiciones de funciones. Consumen tokens pero pueden no ser visibles en el texto sin procesar.
Cuándo cambiar de local a API
Cambia a una API cuando el hardware local no puede cumplir con tus requisitos de latencia o escala. Ejecutar un modelo grande localmente requiere GPUs costosas y energía significativa.
Las APIs ofrecen escalabilidad sin mantenimiento de hardware. Puedes manejar picos de tráfico repentinos con facilidad. Esto es ideal para entornos de producción.
Considera el costo. Si ejecutas un modelo local 24/7, los costos de electricidad y hardware pueden superar el uso de la API. La facturación por token solo es rentable si el uso es variable.
curl https://api.aiapisubscription.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Summarize the technical specs of the new GPU."}]
}'