
Guardrails programáveis para aplicativos de chat com LLM: impor limites de entrada/saída, bloquear jailbreaks e injeções de prompt, detectar alucinações e mascarar dados sensíveis.
ÚLTIMA VERSÃO / VERSÃO DE DESENVOLVIMENTO: O branch develop acompanha o desenvolvimento mais recente. A versão mais recente lançada é a 0.24.1.
✨✨✨
📌 A documentação oficial da biblioteca NeMo Guardrails está disponível em docs.nvidia.com/nemo/guardrails.
✨✨✨
A biblioteca NVIDIA NeMo Guardrails é um kit de ferramentas de código aberto para adicionar facilmente guardrails programáveis a aplicações conversacionais baseadas em LLM. Guardrails (ou "rails" para abreviar) são formas específicas de controlar a saída de um modelo de linguagem de grande porte, como não falar sobre política, responder de uma forma particular a pedidos específicos do utilizador, seguir um caminho de diálogo predefinido, usar um estilo de linguagem particular, extrair dados estruturados, e mais.
Este artigo apresenta a biblioteca NeMo Guardrails e contém uma visão geral técnica do sistema e a avaliação atual.
Python 3.10, 3.11, 3.12 ou 3.13.
Para instalar usando pip:
> pip install nemoguardrails
Para obter instruções mais detalhadas, consulte o Guia de Instalação.
A biblioteca NeMo Guardrails permite que desenvolvedores que criam aplicações baseadas em LLM adicionem guardrails programáveis entre o código da aplicação e o LLM.
Os principais benefícios de adicionar guardrails programáveis incluem:
Construir Aplicações baseadas em LLM Confiáveis, Seguras e Protegidas: você pode definir rails para orientar e proteger conversas; você pode escolher definir o comportamento da sua aplicação baseada em LLM sobre tópicos específicos e impedi-la de se envolver em discussões sobre tópicos indesejados.
Conectar modelos, chains e outros serviços com segurança: você pode conectar um LLM a outros serviços (também conhecidos como ferramentas) de forma transparente e segura.
Diálogo controlável: você pode direcionar o LLM para seguir caminhos conversacionais predefinidos, permitindo que você projete a interação seguindo as melhores práticas de design de conversação e imponha procedimentos operacionais padrão (por exemplo, autenticação, suporte).
A biblioteca NeMo Guardrails fornece vários mecanismos para proteger uma aplicação de chat baseada em LLM contra vulnerabilidades comuns de LLM, como jailbreaks e injeções de prompt. Abaixo está uma visão geral de exemplo da proteção oferecida por diferentes configurações de guardrails para o exemplo ABC Bot incluído neste repositório. Para mais detalhes, consulte a página LLM Vulnerability Scanning.
Você pode usar guardrails programáveis em diferentes tipos de casos de uso:
NEMOGUARDRAILS_LLM_FRAMEWORK=langchain ou chame set_default_framework("langchain").Para adicionar guardrails programáveis à sua aplicação, você pode usar a API Python ou um servidor de guardrails (consulte o Guia do Servidor para mais detalhes). Usar a API Python é semelhante a usar o LLM diretamente. Chamar a camada de guardrails em vez do LLM requer apenas mudanças mínimas na base de código, e envolve dois passos simples:
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!"}]
)
Saída de exemplo:
{"role": "assistant", "content": "Hi! How can I help you?"}
O formato de entrada e saída para o método generate é semelhante à Chat Completions API da OpenAI.
A biblioteca NeMo Guardrails é um toolkit async-first, pois os mecanismos principais são implementados usando o modelo assíncrono do Python. Os métodos públicos têm tanto uma versão síncrona quanto uma assíncrona. Por exemplo: LLMRails.generate e LLMRails.generate_async.
Você pode usar o NeMo Guardrails com vários LLMs, como OpenAI GPT-3.5, GPT-4, LLaMa-2, Falcon, Vicuna ou Mosaic. Para mais detalhes, consulte a seção Supported LLM Models no Guia de Configuração.
A biblioteca NeMo Guardrails suporta cinco tipos principais de guardrails: