
Guardrails v0.24.1
LLM चैट ऐप्स के लिए प्रोग्रामेबल गार्डरेल्स: इनपुट/आउटपुट रेल्स लागू करें, जेलब्रेक और प्रॉम्प्ट इंजेक्शन ब्लॉक करें, हैलुसिनेशन का पता लगाएं, और संवेदनशील डेटा मास्क करें।
NVIDIA NeMo Guardrails लाइब्रेरी
नवीनतम रिलीज़ / डेवलपमेंट वर्शन: develop ब्रांच नवीनतम टॉप ऑफ़ ट्री डेवलपमेंट को ट्रैक करती है। नवीनतम रिलीज़ किया गया वर्शन 0.24.1 है।
✨✨✨
📌 आधिकारिक NeMo Guardrails लाइब्रेरी दस्तावेज़ docs.nvidia.com/nemo/guardrails पर उपलब्ध है।
✨✨✨
NVIDIA NeMo Guardrails लाइब्रेरी एक ओपन-सोर्स टूलकिट है जो LLM-आधारित संवादात्मक अनुप्रयोगों में आसानी से प्रोग्रामेबल गार्डरेल्स जोड़ने के लिए है। गार्डरेल्स (या संक्षेप में "रेल्स") एक बड़े भाषा मॉडल के आउटपुट को नियंत्रित करने के विशिष्ट तरीके हैं, जैसे कि राजनीति के बारे में बात न करना, विशिष्ट उपयोगकर्ता अनुरोधों पर किसी विशेष तरीके से प्रतिक्रिया देना, एक पूर्वनिर्धारित संवाद पथ का पालन करना, किसी विशेष भाषा शैली का उपयोग करना, संरचित डेटा निकालना, और बहुत कुछ।
यह पेपर NeMo Guardrails लाइब्रेरी का परिचय देता है और इसमें सिस्टम का तकनीकी अवलोकन तथा वर्तमान मूल्यांकन शामिल है।
आवश्यकताएँ
Python 3.10, 3.11, 3.12 या 3.13।
इंस्टॉलेशन
pip का उपयोग करके इंस्टॉल करने के लिए:```bash
pip install nemoguardrails
अधिक विस्तृत निर्देशों के लिए, [Installation Guide](https://docs.nvidia.com/nemo/guardrails/get-started/installation-guide) देखें।
## Overview
<!-- start-documentation-reuse -->
NeMo Guardrails लाइब्रेरी डेवलपर्स को LLM-आधारित एप्लिकेशन बनाते समय एप्लिकेशन कोड और LLM के बीच **programmable guardrails** जोड़ने में सक्षम बनाती है।
<div align="center">
<img src="https://raw.githubusercontent.com/NVIDIA-NeMo/Guardrails/develop/docs/_static/images/programmable_guardrails.png" width="75%" alt="Programmable Guardrails">
</div>
*programmable guardrails* जोड़ने के प्रमुख लाभों में शामिल हैं:
- **भरोसेमंद, सुरक्षित और संरक्षित LLM-आधारित एप्लिकेशन बनाना:** आप बातचीत को निर्देशित और सुरक्षित करने के लिए rails परिभाषित कर सकते हैं; आप विशिष्ट विषयों पर अपने LLM-आधारित एप्लिकेशन के व्यवहार को परिभाषित कर सकते हैं और इसे अवांछित विषयों पर चर्चा में शामिल होने से रोक सकते हैं।
- **मॉडल, chains और अन्य सेवाओं को सुरक्षित रूप से जोड़ना:** आप एक LLM को अन्य सेवाओं (जिन्हें tools भी कहा जाता है) से निर्बाध और सुरक्षित रूप से जोड़ सकते हैं।
- **नियंत्रणीय संवाद**: आप LLM को पूर्व-निर्धारित संवाद पथों का पालन करने के लिए निर्देशित कर सकते हैं, जिससे आप संवाद डिज़ाइन की सर्वोत्तम प्रथाओं का पालन करते हुए इंटरैक्शन को डिज़ाइन कर सकते हैं और मानक संचालन प्रक्रियाओं (जैसे, authentication, support) को लागू कर सकते हैं।
<!-- end-documentation-reuse -->
### LLM कमज़ोरियों से सुरक्षा
NeMo Guardrails लाइब्रेरी एक LLM-संचालित चैट एप्लिकेशन को सामान्य LLM कमज़ोरियों, जैसे jailbreaks और prompt injections, से बचाने के लिए कई तंत्र प्रदान करती है। नीचे इस रिपॉज़िटरी में शामिल उदाहरण [ABC Bot](https://github.com/nvidia-nemo/guardrails/blob/develop/examples/bots/abc) के लिए विभिन्न guardrails कॉन्फ़िगरेशन द्वारा प्रदान की गई सुरक्षा का एक नमूना अवलोकन दिया गया है। अधिक विवरण के लिए, कृपया [LLM Vulnerability Scanning](https://docs.nvidia.com/nemo/guardrails/evaluation/llm-vulnerability-scanning.html) पृष्ठ देखें।
<div align="center">
<img src="https://raw.githubusercontent.com/NVIDIA-NeMo/Guardrails/develop/docs/_static/images/abc-llm-vulnerability-scan-results.png" width="500">
</div>
### उपयोग के मामले
आप विभिन्न प्रकार के उपयोग के मामलों में programmable guardrails का उपयोग कर सकते हैं:
1. **प्रश्न उत्तर** दस्तावेज़ों के एक सेट पर (जिसे Retrieval Augmented Generation भी कहा जाता है): तथ्य-जाँच और आउटपुट मॉडरेशन लागू करें।
2. **डोमेन-विशिष्ट सहायक** (जिन्हें chatbots भी कहा जाता है): सुनिश्चित करें कि सहायक विषय पर बना रहे और डिज़ाइन किए गए संवाद प्रवाहों का पालन करे।
3. **LLM Endpoints**: सुरक्षित ग्राहक इंटरैक्शन के लिए अपने कस्टम LLM में guardrails जोड़ें।
4. **LangChain Chains** (वैकल्पिक): यदि आप किसी भी उपयोग के मामले के लिए LangChain का उपयोग करते हैं, तो आप अपनी chains के चारों ओर एक guardrails परत जोड़ सकते हैं। इस एकीकरण को सक्षम करने के लिए, `NEMOGUARDRAILS_LLM_FRAMEWORK=langchain` environment variable सेट करें या `set_default_framework("langchain")` कॉल करें।
### उपयोग
अपने एप्लिकेशन में programmable guardrails जोड़ने के लिए आप Python API या एक guardrails server का उपयोग कर सकते हैं (अधिक विवरण के लिए [Server Guide](https://docs.nvidia.com/nemo/guardrails/get-started/integrate-into-application) देखें)। Python API का उपयोग करना LLM को सीधे उपयोग करने के समान है। LLM के बजाय guardrails परत को कॉल करने के लिए कोड बेस में केवल न्यूनतम परिवर्तन की आवश्यकता होती है, और इसमें दो सरल चरण शामिल हैं:
1. एक guardrails कॉन्फ़िगरेशन लोड करना और एक `LLMRails` इंस्टेंस बनाना।
2. `generate`/`generate_async` मेथड्स का उपयोग करके LLM को कॉल करना।```python
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!"}]
)
नमूना आउटपुट:```json {"role": "assistant", "content": "Hi! How can I help you?"}
`generate` मेथड के लिए इनपुट और आउटपुट फॉर्मेट OpenAI के [Chat Completions API](https://platform.openai.com/docs/guides/gpt/chat-completions-api) के समान है।
#### Async API
NeMo Guardrails लाइब्रेरी एक async-first टूलकिट है क्योंकि इसके मुख्य मैकेनिक्स Python async मॉडल का उपयोग करके लागू किए गए हैं। पब्लिक मेथड्स के sync और async दोनों वर्ज़न उपलब्ध हैं। उदाहरण के लिए: `LLMRails.generate` और `LLMRails.generate_async`।
### समर्थित LLMs
आप NeMo Guardrails का उपयोग कई LLMs जैसे OpenAI GPT-3.5, GPT-4, LLaMa-2, Falcon, Vicuna, या Mosaic के साथ कर सकते हैं। अधिक जानकारी के लिए, Configuration Guide में [Supported LLM Models](https://docs.nvidia.com/nemo/guardrails/about-nemo-guardrails-library/supported-llms) सेक्शन देखें।
### Guardrails के प्रकार
NeMo Guardrails लाइब्रेरी पाँच मुख्य प्रकार के guardrails का समर्थन करती है:
<div align="center">
<img src="https://raw.githubusercontent.com/NVIDIA-NeMo/Guardrails/develop/docs/_static/images/programmable_guardrails_flow.png" width="75%" alt="Programmable Guardrails Flow">
</div>