
Programmierbare Guardrails für LLM-Chat-Apps: Eingabe-/Ausgabe-Regeln durchsetzen, Jailbreaks und Prompt-Injections blockieren, Halluzinationen erkennen und sensible Daten maskieren.
NEUESTE VERSION / ENTWICKLUNGSVERSION: Der Branch develop verfolgt die neueste Entwicklung auf dem aktuellen Stand. Die zuletzt veröffentlichte Version ist 0.24.1.
✨✨✨
📌 Die offizielle Dokumentation der NeMo Guardrails Bibliothek ist verfügbar unter docs.nvidia.com/nemo/guardrails.
✨✨✨
Die NVIDIA NeMo Guardrails Bibliothek ist ein Open-Source-Toolkit, mit dem sich auf einfache Weise programmierbare Guardrails zu LLM-basierten Konversationsanwendungen hinzufügen lassen. Guardrails (oder kurz „Rails“) sind spezifische Möglichkeiten, die Ausgabe eines großen Sprachmodells zu steuern, beispielsweise nicht über Politik zu sprechen, auf bestimmte Benutzeranfragen in einer bestimmten Weise zu reagieren, einem vordefinierten Dialogpfad zu folgen, einen bestimmten Sprachstil zu verwenden, strukturierte Daten zu extrahieren und vieles mehr.
Dieses Paper stellt die NeMo Guardrails Bibliothek vor und enthält einen technischen Überblick über das System sowie die aktuelle Evaluierung.
Python 3.10, 3.11, 3.12 oder 3.13.
Zur Installation mit pip:
> pip install nemoguardrails
Weitere detaillierte Anweisungen finden Sie im Installation Guide.
Die NeMo Guardrails-Bibliothek ermöglicht Entwicklern, die LLM-basierte Anwendungen erstellen, programmierbare Guardrails zwischen dem Anwendungscode und dem LLM hinzuzufügen.
Zu den wichtigsten Vorteilen der Hinzufügung von programmierbaren Guardrails gehören:
Aufbau vertrauenswürdiger, sicherer und geschützter LLM-basierter Anwendungen: Sie können Rails definieren, um Gespräche zu lenken und abzusichern; Sie können das Verhalten Ihrer LLM-basierten Anwendung zu bestimmten Themen festlegen und verhindern, dass sie sich an Diskussionen über unerwünschte Themen beteiligt.
Modelle, Chains und andere Dienste sicher verbinden: Sie können ein LLM nahtlos und sicher mit anderen Diensten (auch bekannt als Tools) verbinden.
Kontrollierbarer Dialog: Sie können das LLM dazu anleiten, vordefinierten Gesprächspfaden zu folgen, sodass Sie die Interaktion nach Best Practices des Conversation Designs gestalten und Standardarbeitsanweisungen (z. B. Authentifizierung, Support) durchsetzen können.
Die NeMo Guardrails-Bibliothek bietet mehrere Mechanismen zum Schutz einer LLM-gestützten Chat-Anwendung vor gängigen LLM-Schwachstellen wie Jailbreaks und Prompt-Injections. Nachfolgend finden Sie eine beispielhafte Übersicht über den Schutz, den verschiedene Guardrails-Konfigurationen für den in diesem Repository enthaltenen Beispiel-ABC Bot bieten. Weitere Details finden Sie auf der Seite LLM Vulnerability Scanning.
Sie können programmierbare Guardrails in verschiedenen Arten von Anwendungsfällen einsetzen:
NEMOGUARDRAILS_LLM_FRAMEWORK=langchain oder rufen Sie set_default_framework("langchain") auf.Um programmierbare Guardrails zu Ihrer Anwendung hinzuzufügen, können Sie die Python-API oder einen Guardrails-Server verwenden (siehe Server Guide für weitere Details). Die Verwendung der Python-API ähnelt der direkten Verwendung des LLM. Der Aufruf der Guardrails-Schicht anstelle des LLM erfordert nur minimale Änderungen an der Codebasis und umfasst zwei einfache Schritte:
LLMRails-Instanz.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!"}]
)
Beispielausgabe:
{"role": "assistant", "content": "Hi! How can I help you?"}
Das Eingabe- und Ausgabeformat für die generate-Methode ähnelt der Chat Completions API von OpenAI.
Die NeMo Guardrails-Bibliothek ist ein Async-First-Toolkit, da die Kernmechanismen unter Verwendung des Python-Async-Modells implementiert sind. Die öffentlichen Methoden haben sowohl eine synchrone als auch eine asynchrone Version. Zum Beispiel: LLMRails.generate und LLMRails.generate_async.