Mejores Prácticas

Optimización para Producción

Obtén la menor latencia, el mayor rendimiento y el costo mínimo de tu integración con TokSpan. Estos son los patrones que ejecutamos en nuestra propia infraestructura de producción.

Minimizar la Latencia

Usar Agrupación de Conexiones

Reutilizar conexiones HTTP elimina la sobrecarga del handshake TLS en cada solicitud (~50-100ms ahorrados por llamada). El SDK de OpenAI agrupa conexiones automáticamente, pero para producción, ajuste el tamaño del pool:

python
import httpx
from openai import OpenAI

# Production-grade client with connection pooling
client = OpenAI(
    api_key="sk-your-key",
    base_url="https://api.tokspan.com/v1",
    http_client=httpx.Client(
        limits=httpx.Limits(
            max_keepalive_connections=20,
            max_connections=50,
        ),
        timeout=60.0,  # total timeout
    ),
)

Usar Siempre Streaming para una UX Interactiva

Establece stream: true en cada solicitud orientada al usuario. El streaming entrega el primer token en ~100ms en lugar de esperar 5-30s por la respuesta completa. Consulta Chat Completions — Streaming para la implementación.

Enrutamiento Edge

Las solicitudes a api.tokspan.com se sirven a través de la red edge de TokSpan, que enruta el tráfico a la región del backend que aloja tu modelo. No se requiere configuración de tu parte.

Aprovechar el Prompt Caching

El prompt caching puede reducir el tiempo hasta el primer token en hasta un 80% en prompts repetidos. Coloca el contenido estático (instrucciones del sistema, contexto) al inicio de tu array de mensajes. Consulta la guía de Prompt Caching para más detalles.

Lista de Verificación de Latencia

OptimizaciónImpacto en LatenciaEsfuerzo
Agrupación de conexiones−50–100ms por solicitudBajo
Habilitar streamingPercibido: −5–30sBajo
Caché de prompts−80% en aciertos de cachéMedio

Minimizar el Costo

Selección Inteligente de Modelos

No todas las tareas necesitan GPT o Claude Opus. Dirija las tareas más simples a modelos más económicos:

Tipo de TareaModelo RecomendadoCosto vs. GPT
Clasificación, extracción, etiquetadoGPT mini, Claude Haiku, Gemini Flash10–50× más económico
Redacción, resumen, traducciónDeepSeek, Llama, Mistral3–10× más económico
Razonamiento complejo, generación de códigoGPT, Claude OpusLínea base
Procesamiento por lotes / en segundo planoDeepSeek u otros modelos de bajo costo5–15× más económico

Establecer Límites de Gasto

Configura límites de gasto por clave en el Panel. Las claves se deshabilitan automáticamente al agotarse su cuota — sin facturas sorpresa. Establece límites más bajos en claves de desarrollo y límites más estrictos en claves compartidas con clientes. Consulta Alcance de Claves.

Lista de Verificación de Costos

OptimizaciónImpacto en CostoEsfuerzo
Dirigir tareas simples a modelos mini−70–95% en esas tareasMedio
Habilitar prompt caching−50–90% en aciertos de cachéBajo
Establecer límites de gasto por claveLímite estricto de gasto máximoBajo
Monitorear el panel de uso semanalmenteDetectar anomalías a tiempoBajo

Maximizar el Rendimiento

Asíncrono + Procesamiento por Lotes

Para procesamiento masivo, usa clientes asíncronos y solicitudes concurrentes. La infraestructura de TokSpan escala horizontalmente — tu límite de rendimiento suele ser tu límite de tasa, no el servidor:

python
import asyncio
from openai import AsyncOpenAI

client = AsyncOpenAI(api_key="sk-your-key", base_url="https://api.tokspan.com/v1")

async def process_batch(prompts: list):
    tasks = [
        client.chat.completions.create(
            model="MODEL_NAME",
            messages=[{"role": "user", "content": p}],
        )
        for p in prompts
    ]
    return await asyncio.gather(*tasks)

Guías de Concurrencia

Como punto de partida:

  • Pago por uso: Comienza con concurrencia moderada (5–10 solicitudes paralelas) y escala según la latencia y las respuestas observadas
  • Empresarial: Concurrencia personalizada — contáctanos para conocer tu límite

Si empiezas a recibir respuestas 429, reduce la concurrencia y retrocede antes de reintentar (backoff exponencial con jitter). Los límites varían según el plan y el modelo — consulta Límites de Tasa para más detalles.

Fiabilidad en Producción

Reintentar con Backoff Exponencial

Los fallos de red y problemas temporales del proveedor ocurren. Siempre envuelva las llamadas API en lógica de reintento:

python
import time
import random
from openai import OpenAI, RateLimitError, APIError

def chat_with_retry(client, model, messages, max_retries=3):
    for attempt in range(max_retries):
        try:
            return client.chat.completions.create(model=model, messages=messages)
        except RateLimitError:
            if attempt == max_retries - 1: raise
            # Exponential backoff with jitter
            wait = (2 ** attempt) + random.uniform(0, 1)
            time.sleep(wait)
        except APIError as e:
            if e.status_code < 500 or attempt == max_retries - 1: raise
            wait = (2 ** attempt) + random.uniform(0, 1)
            time.sleep(wait)

Failover Automático del Mismo Modelo

Si el proveedor que sirve tu modelo experimenta tiempo de inactividad, TokSpan redirige automáticamente las solicitudes a otro proveedor que sirva el mismo modelo — sin solicitudes perdidas y sin intervención manual. La conmutación se mantiene dentro del mismo modelo, por lo que el comportamiento de salida permanece consistente. Consulta Failover Automático.

Estrategia de Claves API

  • Clave de desarrollo: Presupuesto bajo (p. ej. $10), restringida a modelos económicos, sin restricción de IP
  • Clave de staging: Presupuesto moderado (p. ej. $50), conjunto de modelos de producción, con restricción de IP
  • Clave de producción: Presupuesto más alto, todos los modelos, restringida por IP a servidores de producción

Rote las claves cada 90 días. Usa claves separadas por proyecto si gestiona varios proyectos.

Referencia Rápida: Lista de Verificación de Producción

Antes de pasar a producción, revisa esta lista:

  • <strong>Usa un cliente de nivel producción</strong> — pooling de conexiones y timeouts explícitos (ver arriba)
  • <strong>Habilita streaming</strong> en cada solicitud orientada al usuario para una UX responsiva
  • <strong>Implementa reintentos con backoff exponencial y jitter</strong> para errores <code>429</code> y <code>5xx</code>
  • <strong>Configura presupuestos por clave</strong> y listas blancas de IP para que una fuga no genere una factura grande
  • <strong>Coloca el contenido estático del prompt al principio</strong> para maximizar los aciertos de caché y reducir costos