Una biblioteca de Python que restringe las salidas de los LLM durante la generación para que coincidan con un tipo, una expresión regular, un esquema JSON o una gramática determinados.
mlc-ai/xgrammar
Biblioteca rápida y flexible para generar texto estructurado con LLM, limitando las salidas del modelo a JSON, expresiones regulares o gramáticas libres de contexto personalizadas.
- Estrellas
- 1,967
- Forks
- 241
- Issues abiertos
- 130
- Último commit
- hace 3 días
¿Qué es?
XGrammar es una biblioteca de código abierto para generar texto estructurado con modelos de lenguaje grandes. Usa decodificación restringida para que el texto generado siga una estructura especificada, como JSON, una expresión regular o una gramática libre de contexto general. Esto resuelve el problema habitual de que las salidas de un LLM no se puedan analizar o no coincidan con el esquema esperado.
El proyecto busca reducir al mínimo la sobrecarga de la decodificación restringida y señala que la generación de JSON tiene una sobrecarga casi nula. Está diseñado para ser portátil en Linux, macOS y Windows, y funcionar en CPU, GPU de NVIDIA y AMD, Apple Silicon y TPU. Ofrece bindings para Python, C++, JavaScript y Swift.
XGrammar está pensado para integrarse en motores de inferencia. Está integrado en proyectos como vLLM, SGLang, TensorRT-LLM y MLC-LLM, y se puede instalar con pip.
Funciones clave
- 01Limita las salidas a JSON, expresiones regulares o gramáticas libres de contexto personalizadas.
- 02Busca una sobrecarga casi nula al generar JSON.
- 03Funciona en Linux, macOS y Windows, y en CPU, GPU de NVIDIA y AMD, Apple Silicon y TPU.
- 04Ofrece APIs para Python, C++, JavaScript y Swift.
- 05Se puede instalar con pip e incluye un extra opcional de Metal para Apple Silicon.
Casos de uso
- Obligar a un motor de servicio de LLM a devolver JSON válido para su análisis posterior.
- Limitar las salidas del modelo a una expresión regular o gramática para llamadas a herramientas o argumentos de funciones.
- Añadir compatibilidad con salidas estructuradas a una pila de inferencia de LLM personalizada.
Inicio rápido
- 1
Instalar XGrammar desde PyPI
pip install xgrammar - 2
Instalar con compatibilidad con Metal para Apple Silicon (opcional)
pip install "xgrammar[metal]" - 3
Importar XGrammar en tu código Python
import xgrammar as xgr
Antes de usarlo
- La mayoría de los detalles de uso del README se encuentran en documentación externa, no en el propio README.
Temas
Preguntas frecuentes
- ¿Qué es xgrammar?
- Biblioteca rápida y flexible para generar texto estructurado con LLM, limitando las salidas del modelo a JSON, expresiones regulares o gramáticas libres de contexto personalizadas. XGrammar es una biblioteca de código abierto para generar texto estructurado con modelos de lenguaje grandes. Usa decodificación restringida para que el texto generado siga una estructura especificada, como JSON, una expresión regular o una gramática libre de contexto general. Esto resuelve el problema habitual de que las salidas de un LLM no se puedan analizar o no coincidan con el esquema esperado.
- ¿xgrammar es gratuito? ¿Qué licencia tiene?
- xgrammar es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿xgrammar sigue mantenido?
- Mantenimiento activo. El último commit de xgrammar fue el 18 oct 2026.
- ¿Para qué puedo usar xgrammar?
- Obligar a un motor de servicio de LLM a devolver JSON válido para su análisis posterior. Limitar las salidas del modelo a una expresión regular o gramática para llamadas a herramientas o argumentos de funciones. Añadir compatibilidad con salidas estructuradas a una pila de inferencia de LLM personalizada.
- ¿Cómo se instala xgrammar?
- Instalar XGrammar desde PyPI: pip install xgrammar Instalar con compatibilidad con Metal para Apple Silicon (opcional): pip install "xgrammar[metal]" Importar XGrammar en tu código Python: import xgrammar as xgr
- ¿Dónde consigo xgrammar?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/mlc-ai/xgrammar
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Ray es un framework unificado para escalar aplicaciones de Python e IA desde una laptop hasta un clúster, con un runtime distribuido y bibliotecas de IA.
Una codificación compacta y legible para humanos de datos JSON, diseñada para reducir el uso de tokens al incluir datos estructurados en prompts de LLM.
Biblioteca optimizada para GPU y scripts de referencia para entrenar grandes modelos Transformer con paralelismo multidimensional.
Toolkit de código abierto para optimizar e implementar modelos de deep learning para inferencia en CPU, GPU y NPU de Intel.
Biblioteca de comunicación GPU para dispatch y combine de MoE con paralelismo de expertos, dispatch FP8 y compatibilidad con NVLink/RDMA para entrenamiento e inferencia.