
Salvaguardas programables para aplicaciones de chat con LLM: aplica reglas de entrada/salida, bloquea jailbreaks e inyecciones de prompt, detecta alucinaciones y enmascara datos sensibles.
ÚLTIMA VERSIÓN / VERSIÓN DE DESARROLLO: La rama develop sigue el desarrollo más reciente. La última versión publicada es la 0.24.1.
✨✨✨
📌 La documentación oficial de la biblioteca NeMo Guardrails está disponible en docs.nvidia.com/nemo/guardrails.
✨✨✨
La biblioteca NVIDIA NeMo Guardrails es un conjunto de herramientas de código abierto para añadir fácilmente guardrails programables a aplicaciones conversacionales basadas en LLM. Los guardrails (o "rails" para abreviar) son formas específicas de controlar la salida de un modelo de lenguaje grande, como no hablar de política, responder de una manera particular a solicitudes específicas del usuario, seguir una ruta de diálogo predefinida, usar un estilo de lenguaje particular, extraer datos estructurados y más.
Este artículo presenta la biblioteca NeMo Guardrails y contiene una descripción técnica del sistema y la evaluación actual.
Python 3.10, 3.11, 3.12 o 3.13.
Para instalar usando pip:
> pip install nemoguardrails
Para obtener instrucciones más detalladas, consulte la Guía de instalación.
La biblioteca NeMo Guardrails permite a los desarrolladores que crean aplicaciones basadas en LLM añadir guardrails programables entre el código de la aplicación y el LLM.
Los beneficios clave de añadir guardrails programables incluyen:
Crear aplicaciones basadas en LLM fiables, seguras y protegidas: puede definir rails para guiar y salvaguardar las conversaciones; puede optar por definir el comportamiento de su aplicación basada en LLM sobre temas específicos y evitar que participe en discusiones sobre temas no deseados.
Conectar modelos, cadenas y otros servicios de forma segura: puede conectar un LLM a otros servicios (también conocidos como herramientas) de forma fluida y segura.
Diálogo controlable: puede dirigir el LLM para que siga rutas conversacionales predefinidas, lo que le permite diseñar la interacción siguiendo las mejores prácticas de diseño de conversaciones y aplicar procedimientos operativos estándar (por ejemplo, autenticación, soporte).
La biblioteca NeMo Guardrails proporciona varios mecanismos para proteger una aplicación de chat impulsada por LLM contra vulnerabilidades comunes de LLM, como jailbreaks e inyecciones de prompts. A continuación se muestra una descripción general de ejemplo de la protección ofrecida por diferentes configuraciones de guardrails para el ejemplo ABC Bot incluido en este repositorio. Para más detalles, consulte la página LLM Vulnerability Scanning.
Puede utilizar guardrails programables en diferentes tipos de casos de uso:
NEMOGUARDRAILS_LLM_FRAMEWORK=langchain o llame a set_default_framework("langchain").Para añadir guardrails programables a su aplicación, puede utilizar la API de Python o un servidor de guardrails (consulte la Guía del servidor para más detalles). Usar la API de Python es similar a usar el LLM directamente. Llamar a la capa de guardrails en lugar del LLM requiere solo cambios mínimos en el código base, e implica dos sencillos pasos:
LLMRails.generate/generate_async.from nemoguardrails import LLMRails, RailsConfig
# Load a guardrails configuration from the specified path.
config = RailsConfig.from_path("PATH/TO/CONFIG")
rails = LLMRails(config)
completion = rails.generate(
messages=[{"role": "user", "content": "Hello world!"}]
)
Salida de ejemplo:
{"role": "assistant", "content": "Hi! How can I help you?"}
El formato de entrada y salida para el método generate es similar a la API de Chat Completions de OpenAI.
La biblioteca NeMo Guardrails es un kit de herramientas asíncrono desde el principio, ya que la mecánica principal se implementa utilizando el modelo asíncrono de Python. Los métodos públicos tienen tanto una versión síncrona como una asíncrona. Por ejemplo: LLMRails.generate y LLMRails.generate_async.
Puedes usar NeMo Guardrails con múltiples LLMs como OpenAI GPT-3.5, GPT-4, LLaMa-2, Falcon, Vicuna o Mosaic. Para más detalles, consulta la sección Modelos LLM compatibles en la Guía de configuración.