Sobre el proyecto

zai-proxy es un proxy inverso basado en Go que se sitúa frente a la API de Claude de Z.AI, añadiendo funciones de observabilidad y confiabilidad que el acceso directo a la API no ofrece. Consta de dos componentes principales: un servicio proxy y un panel de monitoreo. El proxy escucha en el puerto 8080, reenvía solicitudes a la API LLM ascendente y exporta métricas Prometheus en /metrics. Las capacidades clave incluyen seguimiento de tokens (contando tokens de entrada y salida por solicitud usando uso informado por la API o estimación tiktoken como respaldo), limitación de tasa adaptativa (rastreando respuestas 429 ascendentes con un estimador de techo EWMA que mantiene automáticamente justo por debajo del límite y sondea periódicamente aumentos del techo) y paso a través de transmisión SSE sin almacenamiento en búfer. También admite despliegues azul/verde y canario mediante una etiqueta DEPLOYMENT_VARIANT para comparar versiones de proxy o configuraciones de modelos lado a lado. El panel es un backend Go con un frontend React que extrae el endpoint Prometheus del proxy cada 5 segundos, mantiene instantáneas de doble resolución en anillos en memoria limitados (resolución de 5 segundos durante 24 horas, resolución de 1 minuto durante 7 días) y transmite actualizaciones al navegador mediante SSE. Muestra rendimiento de solicitudes, percentiles de latencia, totales de uso de tokens, tasas de error y paneles de comparación por variante. El proxy expone un conjunto completo de métricas Prometheus que incluye conteos de solicitudes, histogramas de latencia, tasas de tokens, tasas de error, tiempos de espera de limitación de tasa, intentos de reintento, utilización de trabajadores e información de compilación, todo etiquetado por modelo y variante de despliegue. La configuración se maneja mediante variables de entorno que cubren claves API, URLs objetivo, parámetros de limitación de tasa, sondeo de cuotas y comportamiento de reintentos.