CommunityProgramación y desarrollogithub.com

recorded-phrygian494/relay

Enruta el tráfico de LLM entre proveedores con una puerta de enlace autoalojada. Usa un único binario Go para gestionar tus claves, conmutación por error y enrutamiento para los dialectos de API de OpenAI y Anthropic.

¿Qué es relay?

Relay es una puerta de enlace autoalojada, ligera y eficiente escrita en Go, diseñada para enrutar solicitudes de modelos de lenguaje grandes (LLM) entre múltiples proveedores como OpenAI y Anthropic. Su principal utilidad radica en la capacidad de gestionar centralizadamente claves API, implementar estrategias de conmutación por error (failover) y definir reglas de enrutamiento avanzadas, todo desde un único binario. Esto permite a los desarrolladores reducir la dependencia de un solo proveedor, mejorar la resiliencia de sus aplicaciones y optimizar costos al distribuir la carga de trabajo. Compatible con las interfaces de API de OpenAI y Anthropic (incluyendo dialectos como /chat/completions y /v1/messages), Relay actúa como un proxy transparente que normaliza las diferencias entre proveedores, ofreciendo una experiencia unificada. Su funcionamiento implica la configuración de un archivo YAML donde se definen los proveedores, claves y reglas de enrutamiento, y luego se ejecuta el binario para iniciar el servidor proxy. Es ideal para equipos que buscan flexibilidad y control en su infraestructura de IA sin añadir complejidad operativa.

Compatible con✓Claude Code✓Codex CLI~Cursor
npx skills add recorded-phrygian494/relay

Installed? Explore more Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

¿Qué hace relay?

Enruta el tráfico de LLM entre proveedores con una puerta de enlace autoalojada. Usa un único binario Go para gestionar tus claves, conmutación por error y enrutamiento para los dialectos de API de OpenAI y Anthropic.

Características

  • Enrutamiento inteligente: Define reglas para dirigir solicitudes a diferentes proveedores según el modelo, la carga o estrategias personalizadas.
  • Conmutación por error: Configura respaldo automático si un proveedor falla o alcanza límites de tasa.
  • Gestión centralizada de claves: Almacena y administra todas tus claves API en un solo lugar.
  • Ligero y eficiente: Un único binario Go, sin dependencias externas pesadas.
  • Dialectos de API compatibles: OpenAI (/v1/chat/completions) y Anthropic (/v1/messages).

Requisitos

  • Go 1.21 o superior (para compilar desde el código fuente).
  • Sistema operativo: Linux, macOS o Windows.

Instalación

Puedes descargar el binario precompilado desde la página de releases o compilarlo tú mismo:

git clone https://github.com/recorded-phrygian494/relay.git
cd relay
go build -o relay .

Configuración

Crea un archivo config.yaml en el mismo directorio que el binario. Aquí tienes un ejemplo:

---
servers:
  - port: 8080
    providers:
      - name: openai
        type: openai
        api_key: "sk-your-openai-key"
        base_url: "https://api.openai.com"
      - name: anthropic
        type: anthropic
        api_key: "sk-ant-your-anthropic-key"
        base_url: "https://api.anthropic.com"
routes:
  - model: "gpt-4"
    provider: openai
  - model: "claude-3-opus-20240229"
    provider: anthropic
  - model: "*"
    provider: openai
    fallback: anthropic

Uso

Ejecuta el binario con el archivo de configuración:

./relay --config config.yaml

El servidor se iniciará en el puerto especificado (por defecto 8080). Ahora puedes enviar solicitudes a http://localhost:8080/v1/chat/completions (para OpenAI) o http://localhost:8080/v1/messages (para Anthropic).

Ejemplo con curl:

curl http://localhost:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4",
    "messages": [{"role": "user", "content": "Hola, ¿cómo estás?"}]
  }'

Opciones de línea de comandos

  • --config: Ruta al archivo de configuración (por defecto config.yaml).
  • --port: Puerto para el servidor (anula la configuración).
  • --verbose: Habilita la salida detallada.

Licencia

MIT

Skills relacionados