Repolode
smg-project

smg-project/smg

Gateway de LLM independiente del motor, escrito en Rust, que enruta tráfico compatible con OpenAI y Anthropic entre motores de inferencia autohospedados y proveedores de modelos en la nube.

Estrellas
633
Forks
195
Issues abiertos
172
Último commit
hace 17 horas

¿Qué es?

SMG (Shepherd Model Gateway) es un gateway de enrutamiento de modelos que se sitúa delante de servidores de inferencia de LLM y proveedores en la nube, y los expone mediante un único endpoint unificado. Gestiona el ciclo de vida de los workers, distribuye el tráfico entre vLLM, SGLang, TensorRT-LLM, TokenSpeed, MLX y cualquier servidor compatible con OpenAI, y también puede reenviar solicitudes a OpenAI, Anthropic, Gemini, xAI, AWS Bedrock y Azure OpenAI.

Para los motores autohospedados, el router rastrea el estado de la caché KV mediante árboles radix, de modo que las solicitudes que comparten un prefijo lleguen al mismo worker, y admite la desagregación de prefill y decode mediante un pipeline gRPC nativo. Entre sus funciones operativas se incluyen el descubrimiento de pods de Kubernetes, los circuit breakers, la limitación de tasa, la planificación de admisión por prioridad y las métricas de Prometheus con trazas de OpenTelemetry.

El gateway también ofrece almacenamiento del historial de chat (PostgreSQL, Oracle, Redis o memoria), ejecución de herramientas MCP, autenticación mediante API key y OIDC, y plugins de WebAssembly para gestionar solicitudes de forma personalizada.

Funciones clave

  • 01Endpoints de API unificados con estilos compatibles con OpenAI, Anthropic y Gemini para backends autohospedados y en la nube.
  • 02Enrutamiento que tiene en cuenta la caché, además de otras nueve políticas de balanceo de carga.
  • 03Pipeline gRPC nativo con desagregación de prefill/decode y encode.
  • 04Descubrimiento de pods de Kubernetes y malla de alta disponibilidad para implementaciones multinodo.
  • 05Ejecución de herramientas MCP y parsers de llamadas a herramientas y razonamiento para numerosos modelos abiertos.
  • 06Métricas de Prometheus, trazas de OpenTelemetry y plugins de WebAssembly.

Casos de uso

  • Distribuir solicitudes entre un conjunto de servidores GPU con vLLM o SGLang.
  • Exponer un único endpoint compatible con OpenAI que dé acceso tanto a motores locales como a modelos alojados en la nube.
  • Añadir autenticación, controles multiusuario e historial de chat a un servicio de LLM.
  • Ejecutar una plataforma de inferencia con enrutamiento en Kubernetes y descubrimiento automático de workers.

Inicio rápido

  1. 1

    Instalar mediante Docker

    docker pull lightseekorg/smg:latest
  2. 2

    Instalar mediante Python

    pip install smg
  3. 3

    Iniciar la puerta de enlace para que se conecte a tus workers de inferencia

    smg launch --worker-urls http://localhost:8000
  4. 4

    Enviar una solicitud de chat a la puerta de enlace

    curl http://localhost:30000/v1/chat/completions -H "Content-Type: application/json" -d '{"model": "llama3", "messages": [{"role": "user", "content": "Hello!"}]}'

Antes de usarlo

  • Para ejecutarlo, se necesita al menos un worker de inferencia existente o un proveedor de nube al que enrutar las solicitudes.
  • El README no indica si hay una versión estable, así que puede haber cambios entre versiones.

Temas

Preguntas frecuentes

¿Qué es smg?
Gateway de LLM independiente del motor, escrito en Rust, que enruta tráfico compatible con OpenAI y Anthropic entre motores de inferencia autohospedados y proveedores de modelos en la nube. SMG (Shepherd Model Gateway) es un gateway de enrutamiento de modelos que se sitúa delante de servidores de inferencia de LLM y proveedores en la nube, y los expone mediante un único endpoint unificado. Gestiona el ciclo de vida de los workers, distribuye el tráfico entre vLLM, SGLang, TensorRT-LLM, TokenSpeed, MLX y cualquier servidor compatible con OpenAI, y también puede reenviar solicitudes a OpenAI, Anthropic, Gemini, xAI, AWS Bedrock y Azure OpenAI.
¿smg es gratuito? ¿Qué licencia tiene?
smg es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿smg sigue mantenido?
Mantenimiento activo. El último commit de smg fue el 19 oct 2026.
¿Para qué puedo usar smg?
Distribuir solicitudes entre un conjunto de servidores GPU con vLLM o SGLang. Exponer un único endpoint compatible con OpenAI que dé acceso tanto a motores locales como a modelos alojados en la nube. Añadir autenticación, controles multiusuario e historial de chat a un servicio de LLM. Ejecutar una plataforma de inferencia con enrutamiento en Kubernetes y descubrimiento automático de workers.
¿Cómo se instala smg?
Instalar mediante Docker: docker pull lightseekorg/smg:latest Instalar mediante Python: pip install smg Iniciar la puerta de enlace para que se conecte a tus workers de inferencia: smg launch --worker-urls http://localhost:8000 Enviar una solicitud de chat a la puerta de enlace: curl http://localhost:30000/v1/chat/completions -H "Content-Type: application/json" -d '{"model": "llama3", "messages": [{"role": "user", "content": "Hello!"}]}'
¿Dónde consigo smg?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/smg-project/smg

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados