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:
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ón | Impacto en Latencia | Esfuerzo |
|---|---|---|
| Agrupación de conexiones | −50–100ms por solicitud | Bajo |
| Habilitar streaming | Percibido: −5–30s | Bajo |
| 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 Tarea | Modelo Recomendado | Costo vs. GPT |
|---|---|---|
| Clasificación, extracción, etiquetado | GPT mini, Claude Haiku, Gemini Flash | 10–50× más económico |
| Redacción, resumen, traducción | DeepSeek, Llama, Mistral | 3–10× más económico |
| Razonamiento complejo, generación de código | GPT, Claude Opus | Línea base |
| Procesamiento por lotes / en segundo plano | DeepSeek u otros modelos de bajo costo | 5–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ón | Impacto en Costo | Esfuerzo |
|---|---|---|
| Dirigir tareas simples a modelos mini | −70–95% en esas tareas | Medio |
| Habilitar prompt caching | −50–90% en aciertos de caché | Bajo |
| Establecer límites de gasto por clave | Límite estricto de gasto máximo | Bajo |
| Monitorear el panel de uso semanalmente | Detectar anomalías a tiempo | Bajo |
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:
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:
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