
LLM चैट ऐप्स के लिए प्रोग्रामेबल गार्डरेल्स: इनपुट/आउटपुट रेल्स लागू करें, जेलब्रेक और प्रॉम्प्ट इंजेक्शन ब्लॉक करें, हैलुसिनेशन का पता लगाएं, और संवेदनशील डेटा मास्क करें।
नवीनतम रिलीज़ / डेवलपमेंट वर्शन: 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>
1. **Input rails**: उपयोगकर्ता के इनपुट पर लागू होते हैं; एक input rail इनपुट को अस्वीकार कर सकता है, किसी भी अतिरिक्त प्रोसेसिंग को रोक सकता है, या इनपुट को बदल सकता है (जैसे, संभावित संवेदनशील डेटा को मास्क करने के लिए, पुनः वाक्यांशित करने के लिए)।
2. **Dialog rails**: यह प्रभावित करते हैं कि LLM को कैसे प्रॉम्प्ट किया जाता है; dialog rails canonical form संदेशों पर काम करते हैं, विवरण के लिए [Colang Guide](https://docs.nvidia.com/nemo/guardrails/configure-guardrails/colang) देखें) और यह निर्धारित करते हैं कि कोई action निष्पादित किया जाना चाहिए या नहीं, अगले चरण या प्रतिक्रिया को जनरेट करने के लिए LLM को इनवोक किया जाना चाहिए या नहीं, इसके बजाय कोई पूर्वनिर्धारित प्रतिक्रिया उपयोग की जानी चाहिए या नहीं, आदि।
3. **Retrieval rails**: RAG (Retrieval Augmented Generation) परिदृश्य के मामले में retrieved chunks पर लागू होते हैं; एक retrieval rail किसी chunk को अस्वीकार कर सकता है, जिससे उसे LLM को प्रॉम्प्ट करने के लिए उपयोग होने से रोका जा सके, या प्रासंगिक chunks को बदल सकता है (जैसे, संभावित संवेदनशील डेटा को मास्क करने के लिए)।
4. **Execution rails**: कस्टम actions (जिन्हें tools भी कहा जाता है) के इनपुट/आउटपुट पर लागू होते हैं, जिन्हें LLM द्वारा कॉल किया जाना आवश्यक होता है।
5. **Output rails**: LLM द्वारा जनरेट किए गए आउटपुट पर लागू होते हैं; एक output rail आउटपुट को अस्वीकार कर सकता है, जिससे उसे उपयोगकर्ता को लौटाए जाने से रोका जा सके, या उसे बदल सकता है (जैसे, संवेदनशील डेटा हटाना)।
### Guardrails Configuration
एक guardrails configuration उपयोग किए जाने वाले **LLM(s)** और **एक या अधिक guardrails** को परिभाषित करता है। एक guardrails configuration में किसी भी संख्या में input/dialog/output/retrieval/execution rails शामिल हो सकते हैं। बिना किसी configured rail वाला configuration अनिवार्य रूप से अनुरोधों को LLM तक अग्रेषित कर देगा।
guardrails configuration फ़ोल्डर की मानक संरचना इस प्रकार दिखती है:```
.
├── config
│ ├── actions.py
│ ├── config.py
│ ├── config.yml
│ ├── rails.co
│ ├── ...
config.yml में सभी सामान्य कॉन्फ़िगरेशन विकल्प शामिल होते हैं, जैसे LLM मॉडल, सक्रिय rails, और कस्टम कॉन्फ़िगरेशन डेटा। config.py फ़ाइल में कोई भी कस्टम इनिशियलाइज़ेशन कोड होता है और actions.py में कोई भी कस्टम python actions होते हैं। पूर्ण अवलोकन के लिए, Configuration Guide देखें।
नीचे एक उदाहरण config.yml दिया गया है:```yaml
models:
rails:
input: flows: - check jailbreak - mask sensitive data on input
output: flows: - self check facts - self check hallucination - activefence moderation on input
config: # Configure the types of entities that should be masked on user input. sensitive_data_detection: input: entities: - PERSON - EMAIL_ADDRESS
guardrails कॉन्फ़िगरेशन में शामिल `.co` फ़ाइलों में Colang परिभाषाएँ होती हैं (Colang क्या है, इसका त्वरित अवलोकन अगले अनुभाग में देखें) जो विभिन्न प्रकार की rails को परिभाषित करती हैं। नीचे एक उदाहरण `greeting.co` फ़ाइल दी गई है जो उपयोगकर्ता का अभिवादन करने के लिए dialog rails को परिभाषित करती है।```colang
define user express greeting
"Hello!"
"Good afternoon!"
define flow
user express greeting
bot express greeting
bot offer to help
define bot express greeting
"Hello there!"
define bot offer to help
"How can I help you today?"
नीचे अपमानों के विरुद्ध संवाद रेल के लिए Colang परिभाषाओं का एक अतिरिक्त उदाहरण दिया गया है:```colang define user express insult "You are stupid"
define flow user express insult bot express calmly willingness to help
### Colang
विभिन्न प्रकार के गार्डरेल्स को कॉन्फ़िगर और लागू करने के लिए, यह टूलकिट **Colang** प्रस्तुत करता है, जो एक मॉडलिंग भाषा है जिसे विशेष रूप से लचीले, फिर भी नियंत्रणीय, संवाद प्रवाहों को डिज़ाइन करने के लिए बनाया गया है। Colang में पायथन-जैसी सिंटैक्स है और इसे सरल और सहज बनाया गया है, विशेष रूप से डेवलपर्स के लिए।```{note}
Two versions of Colang, 1.0 and 2.0, are supported and Colang 1.0 is the default.
Colang 1.0 सिंटैक्स का संक्षिप्त परिचय प्राप्त करने के लिए, Colang 1.0 Language Syntax Guide देखें।
Colang 2.0 के साथ शुरुआत करने के लिए, Colang 2.0 Documentation देखें।
NeMo Guardrails के साथ built-in guardrails का एक सेट आता है।```{note} The built-in guardrails may or may not be suitable for a given production use case. As always, developers should work with their internal application team to ensure guardrails meets requirements for the relevant industry and use case and address unforeseen product misuse.
लाइब्रेरी में LLM स्व-जाँच (इनपुट/आउटपुट मॉडरेशन, तथ्य-जाँच, भ्रम/हैलुसिनेशन का पता लगाना), NVIDIA सुरक्षा मॉडल (सामग्री सुरक्षा, विषय सुरक्षा), जेलब्रेक और इंजेक्शन का पता लगाना, और समुदाय मॉडल तथा तृतीय-पक्ष API के साथ एकीकरण के लिए गार्डरेल्स शामिल हैं। पूरी सूची के लिए, [Guardrails Library documentation](https://docs.nvidia.com/nemo/guardrails/user-guides/guardrails-library.html) देखें।
## CLI
NeMo Guardrails लाइब्रेरी के साथ एक अंतर्निहित CLI भी आता है।```bash
$ nemoguardrails --help
Usage: nemoguardrails [OPTIONS] COMMAND [ARGS]...
actions-server Start a NeMo Guardrails actions server.
chat Start an interactive chat session.
evaluate Run an evaluation task.
server Start a NeMo Guardrails server.
आप guardrails सर्वर शुरू करने के लिए NeMo Guardrails लाइब्रेरी CLI का उपयोग कर सकते हैं। सर्वर निर्दिष्ट फ़ोल्डर से एक या अधिक कॉन्फ़िगरेशन लोड कर सकता है और उनका उपयोग करने के लिए एक HTTP API उजागर कर सकता है।``` nemoguardrails server [--config PATH/TO/CONFIGS] [--port PORT]
उदाहरण के लिए, `sample` कॉन्फ़िग के लिए चैट कम्पलीशन प्राप्त करने के लिए, आप `/v1/chat/completions` एंडपॉइंट का उपयोग कर सकते हैं:```
POST /v1/chat/completions
यहाँ सामग्री का हिंदी अनुवाद है, जिसमें सभी तकनीकी तत्वों को अपरिवर्तित रखा गया है:
- **`--no-color`**: रंगीन आउटपुट अक्षम करें
- **`--verbose`**: विस्तृत आउटपुट सक्षम करें
- **`--quiet`**: केवल त्रुटियाँ दिखाएँ
- **`--config <file>`**: कॉन्फ़िगरेशन फ़ाइल निर्दिष्ट करें
- **`--output <format>`**: आउटपुट प्रारूप (json, yaml, text)
- **`--timeout <seconds>`**: अनुरोध टाइमआउट सेट करें
- **`--retry <count>`**: विफल अनुरोधों को पुनः प्रयास करें
- **`--proxy <url>`**: प्रॉक्सी सर्वर का उपयोग करें
- **`--header <header>`**: कस्टम हेडर जोड़ें
- **`--cookie <cookie>`**: कस्टम कुकी जोड़ें
- **`--user-agent <ua>`**: कस्टम User-Agent सेट करें
- **`--threads <count>`**: थ्रेड की संख्या सेट करें
- **`--rate-limit <rps>`**: प्रति सेकंड अनुरोधों को सीमित करें
- **`--follow-redirects`**: रीडायरेक्ट का पालन करें
- **`--insecure`**: TLS प्रमाणपत्र सत्यापन अक्षम करें
- **`--random-agent`**: यादृच्छिक User-Agent का उपयोग करें
- **`--tor`**: Tor नेटवर्क के माध्यम से रूट करें
- **`--update`**: टूल को नवीनतम संस्करण में अपडेट करें
- **`--version`**: संस्करण जानकारी दिखाएँ
- **`--help`**: सहायता संदेश दिखाएँ
### उदाहरण
```bash
# बुनियादी स्कैन
./tool --target example.com
# कस्टम कॉन्फ़िगरेशन के साथ
./tool --config config.yaml --verbose
# JSON आउटपुट के साथ
./tool --target example.com --output json
# प्रॉक्सी और कस्टम हेडर के साथ
./tool --target example.com --proxy http://127.0.0.1:8080 --header "X-Custom: value"
# थ्रेड और रेट लिमिट के साथ
./tool --target example.com --threads 10 --rate-limit 5
टूल YAML कॉन्फ़िगरेशन फ़ाइल का समर्थन करता है:
target: example.com
threads: 10
timeout: 30
output: json
verbose: true
headers:
User-Agent: "Mozilla/5.0"
Accept: "*/*"
{
"target": "example.com",
"status": "success",
"results": [
{
"url": "https://example.com",
"status_code": 200,
"content_length": 1234
}
]
}
target: example.com
status: success
results:
- url: https://example.com
status_code: 200
content_length: 1234
टूल विभिन्न त्रुटियों को संभालता है:
योगदान का स्वागत है! कृपया सुनिश्चित करें कि आप:
यह प्रोजेक्ट MIT लाइसेंस के तहत लाइसेंस प्राप्त है - विवरण के लिए LICENSE फ़ाइल देखें।
यह टूल केवल शैक्षिक और नैतिक सुरक्षा परीक्षण उद्देश्यों के लिए है। इसका उपयोग केवल उन प्रणालियों पर करें जिनके लिए आपके पास स्पष्ट अनुमति है। अनधिकृत पहुँच अवैध है और इसका परिणाम गंभीर कानूनी परिणाम हो सकते हैं।
नोट: यह टूल सक्रिय रूप से विकसित किया जा रहा है। नवीनतम सुविधाओं और अपडेट के लिए रिपॉजिटरी को देखें।
{
"config_id": "sample",
"messages": [{
"role":"user",
"content":"Hello! What can you do for me?"
}]
}
```
नमूना आउटपुट:```json
{"role": "assistant", "content": "Hi! How can I help you?"}
```
#### Docker
एक guardrails सर्वर शुरू करने के लिए, आप एक Docker कंटेनर का भी उपयोग कर सकते हैं। NeMo Guardrails लाइब्रेरी एक [Dockerfile](https://github.com/nvidia-nemo/guardrails/blob/develop/Dockerfile) प्रदान करती है जिसका उपयोग आप `nemoguardrails` इमेज बनाने के लिए कर सकते हैं। अधिक जानकारी के लिए, [using Docker](https://docs.nvidia.com/nemo/guardrails/user-guides/advanced/using-docker.html) अनुभाग देखें।
## LangChain के साथ एकीकरण (वैकल्पिक)
LangChain एकीकरण opt-in है। इसे सक्षम करने के लिए, `NEMOGUARDRAILS_LLM_FRAMEWORK=langchain` पर्यावरण चर सेट करें या `set_default_framework("langchain")` कॉल करें। फिर अपने कॉन्फ़िगरेशन के लिए आवश्यक LangChain पैकेज इंस्टॉल करें। एकीकरण सक्षम करने के बाद, आप एक LangChain चेन (या किसी भी `Runnable`) के चारों ओर एक guardrails कॉन्फ़िगरेशन लपेट सकते हैं, और आप एक guardrails कॉन्फ़िगरेशन के भीतर से एक LangChain चेन को कॉल कर सकते हैं। अधिक जानकारी के लिए, [LangChain Integration Documentation](https://docs.nvidia.com/nemo/guardrails/user-guides/langchain/langchain-integration.html) देखें।
## मूल्यांकन
LLM-आधारित संवादात्मक एप्लिकेशन की सुरक्षा का मूल्यांकन करना एक जटिल कार्य है और अभी भी एक खुला शोध प्रश्न है। उचित मूल्यांकन का समर्थन करने के लिए, NeMo Guardrails लाइब्रेरी निम्नलिखित प्रदान करती है:
1. एक [मूल्यांकन उपकरण](https://github.com/nvidia-nemo/guardrails/blob/develop/nemoguardrails/evaluate/README.md), अर्थात् `nemoguardrails evaluate`, जिसमें topical rails, fact-checking, moderation (jailbreak और output moderation) और hallucination के लिए समर्थन है।
2. नमूना LLM Vulnerability Scanning Reports, जैसे, [ABC Bot - LLM Vulnerability Scan Results](https://docs.nvidia.com/nemo/guardrails/evaluation/llm-vulnerability-scanning.html)
## यह किस प्रकार भिन्न है?
LLM-आधारित संवादात्मक एप्लिकेशन में guardrails जोड़ने के कई तरीके हैं। उदाहरण के लिए: स्पष्ट moderation endpoints (जैसे, OpenAI, ActiveFence, PolicyAI), critique chains (जैसे constitutional chain), आउटपुट को पार्स करना (जैसे guardrails.ai), व्यक्तिगत guardrails (जैसे, LLM-Guard), RAG एप्लिकेशन के लिए hallucination detection (जैसे, Got It AI, Patronus Lynx)।
NeMo Guardrails लाइब्रेरी का लक्ष्य एक लचीला टूलकिट प्रदान करना है जो इन सभी पूरक दृष्टिकोणों को एक सुसंगत LLM guardrails परत में एकीकृत कर सके। उदाहरण के लिए, टूलकिट ActiveFence, PolicyAI, AlignScore और LangChain chains के साथ out-of-the-box एकीकरण प्रदान करता है।
हमारी जानकारी के अनुसार, NeMo Guardrails लाइब्रेरी एकमात्र ऐसी guardrails टूलकिट है जो उपयोगकर्ता और LLM के बीच संवाद को मॉडल करने का समाधान भी प्रदान करती है। यह एक ओर तो संवाद को सटीक तरीके से निर्देशित करने की क्षमता प्रदान करती है। दूसरी ओर यह सक्षम बनाती है कि कब कुछ guardrails का उपयोग किया जाना चाहिए, इस पर सूक्ष्म नियंत्रण, जैसे, fact-checking केवल कुछ प्रकार के प्रश्नों के लिए उपयोग करें।
## और जानें
- [Documentation](https://docs.nvidia.com/nemo/guardrails)
- [Getting Started Guide](https://docs.nvidia.com/nemo/guardrails/getting-started)
- [Examples](https://github.com/nvidia-nemo/guardrails/blob/develop/examples)
- [FAQs](https://docs.nvidia.com/nemo/guardrails/faqs.html)
- [Security Guidelines](https://docs.nvidia.com/nemo/guardrails/security/guidelines.html)
## Telemetry और गोपनीयता
NVIDIA NeMo Guardrails लाइब्रेरी अनाम telemetry एकत्र करती है ताकि NVIDIA यह समझ सके कि कौन से deployment पैटर्न और सुरक्षा सुविधाएँ सबसे अधिक उपयोग की जाती हैं। लाइब्रेरी एक उपयोग इवेंट उत्सर्जित करती है जब आप `LLMRails`, `IORails`, या `Guardrails` को इंस्टैंशिएट करते हैं, फिर प्रति प्रक्रिया एक एकल daemon thread से आवधिक heartbeats उत्सर्जित करती है। यह telemetry प्रति-अनुरोध [tracing](https://docs.nvidia.com/nemo/guardrails/latest/observability/tracing/index.html) से अलग है। आप अपने guardrails कॉन्फ़िग में tracing कॉन्फ़िगर करते हैं और इसे अपने स्वयं के observability backend पर भेजते हैं। Telemetry NVIDIA को एक न्यूनतम अनाम ping है।
### समुदाय उपयोग स्नैपशॉट
सटीक `0.22.0` और `0.23.0` रिलीज़ बिल्ड्स में समग्र अनाम उपयोग, 22 मई–18 अगस्त, 2026:



_अंतिम बार 18 अगस्त, 2026 को अपडेट किया गया_
Telemetry में शामिल है:
- इंस्टॉल की गई लाइब्रेरी संस्करण, Python संस्करण, ऑपरेटिंग सिस्टम, और प्लेटफ़ॉर्म स्ट्रिंग
- Colang कॉन्फ़िगरेशन भाषा संस्करण (1.0 या 2.x)
- कॉन्फ़िगर किए गए LLM इंजन प्रदाताओं के नाम, जैसे `openai`, `nim`, या `nvidia_ai_endpoints`, कभी भी मॉडल नाम या क्रेडेंशियल नहीं
- input, output, retrieval, tool input, और tool output rails के लिए कॉन्फ़िगर किए गए rail flows की गणना, साथ ही कौन सी rail श्रेणियाँ सक्रिय हैं
- सक्रिय अंतर्निहित लाइब्रेरी सुविधाओं के नाम, जैसे `jailbreak_detection`, `content_safety`, या `topic_safety`
- उपयोगकर्ता-परिभाषित Colang flows की गणना (केवल गणना, कभी भी flow नाम या सामग्री नहीं)
- क्या tracing, streaming, या एक knowledge base कॉन्फ़िगर किया गया है
- आपने guardrails को कैसे deploy किया (`library`, `api`, या `cli` server)
- कौन सा runtime rails engine उपयोग में है (`LLMRails` या `IORails`)
- एक ही इंस्टेंस से इवेंट्स को सहसंबंधित करने के लिए एक यादृच्छिक प्रति-प्रक्रिया UUID। लाइब्रेरी इसे मेमोरी में उत्पन्न करती है और पुनः आरंभ के दौरान पुन: उपयोग के लिए संग्रहीत नहीं करती, लेकिन इसे audit records और प्रेषित telemetry इवेंट्स में शामिल करती है
इवेंट payload में कोई उपयोगकर्ता सामग्री एकत्र नहीं की जाती है। payload में मॉडल नाम, API keys, endpoints, prompts, completions, token counts, प्रति-अनुरोध मेट्रिक्स, फ़ाइल पथ, उपयोगकर्ता नाम, या IP पते शामिल नहीं हैं। NVIDIA डेटा का उपयोग समग्र रूप से इंजीनियरिंग कार्य को प्राथमिकता देने के लिए करती है और समुदाय के साथ adoption रुझान साझा करेगी।
लाइब्रेरी प्रत्येक इवेंट payload को `~/.config/nemoguardrails/usage_stats.json` पर एक स्थानीय audit फ़ाइल में लिखने का भी प्रयास करती है। audit फ़ाइल इवेंट JSONL संग्रहीत करती है, पूर्ण NVIDIA telemetry envelope नहीं। Audit लेखन best effort है, और यदि स्थानीय audit लेखन विफल हो जाता है तो भी telemetry प्रसारण आगे बढ़ता है।
Telemetry को अक्षम करने के लिए निम्नलिखित में से कोई एक विकल्प सेट करें:```bash
export NEMO_GUARDRAILS_NO_USAGE_STATS=1
# or
export DO_NOT_TRACK=1
# or
mkdir -p ~/.config/nemoguardrails && touch ~/.config/nemoguardrails/do_not_track
```
NVIDIA NeMo Guardrails लाइब्रेरी शुरू होने से पहले opt-out सेट करें। टेलीमेट्री शुरू होने के बाद environment variables बदलने या `do_not_track` बनाने से पहले से चल रहा heartbeat thread नहीं रुकता।
पूर्ण schema और field-by-field विवरण के लिए [docs/telemetry.md](https://docs.nvidia.com/nemo/guardrails/latest/telemetry.html) देखें।
आप किसी भी समय टेलीमेट्री संग्रह से opt out कर सकते हैं। Opting out केवल NVIDIA NeMo Guardrails लाइब्रेरी द्वारा डेटा संग्रह पर लागू होता है।
Third-party endpoints की अलग शर्तें और privacy practices हैं। NVIDIA NeMo Guardrails लाइब्रेरी NVIDIA Build (`build.nvidia.com`) जैसे inference endpoints का उपयोग कर सकती है। यदि आप NVIDIA Build या किसी अन्य third-party endpoint का उपयोग करते हैं, तो उस endpoint की terms of service और privacy practices लाइब्रेरी से स्वतंत्र रूप से लागू होती हैं। NVIDIA NeMo Guardrails लाइब्रेरी में कोई भी telemetry opt-out आपके चुने हुए endpoint तक विस्तारित नहीं होता। NVIDIA Build केवल evaluation और testing के लिए है और इसे production environments में उपयोग नहीं किया जाना चाहिए। NVIDIA Build का उपयोग करते समय गोपनीय जानकारी या personal data सबमिट न करें।
## समुदाय को योगदान के लिए आमंत्रित करना
रिपॉज़िटरी में मौजूद example rails उत्कृष्ट शुरुआती बिंदु हैं। हम समुदाय को भरोसेमंद, सुरक्षित और सुरक्षित LLMs की शक्ति को सभी के लिए सुलभ बनाने में योगदान देने के लिए उत्साहपूर्वक आमंत्रित करते हैं। development environment सेट करने और NeMo Guardrails लाइब्रेरी में योगदान देने के तरीके पर मार्गदर्शन के लिए, [contributing guidelines](https://github.com/nvidia-nemo/guardrails/blob/develop/CONTRIBUTING.md) देखें।
## लाइसेंस
NeMo Guardrails लाइब्रेरी [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0) के अंतर्गत लाइसेंस प्राप्त है।
## उद्धृत कैसे करें
यदि आप NeMo Guardrails लाइब्रेरी का उपयोग करते हैं, तो उस [EMNLP 2023 paper](https://aclanthology.org/2023.emnlp-demo.40) को उद्धृत करें जो इसे प्रस्तुत करता है।```bibtex
@inproceedings{rebedea-etal-2023-nemo,
title = "{N}e{M}o Guardrails: A Toolkit for Controllable and Safe {LLM} Applications with Programmable Rails",
author = "Rebedea, Traian and
Dinu, Razvan and
Sreedhar, Makesh Narsimhan and
Parisien, Christopher and
Cohen, Jonathan",
editor = "Feng, Yansong and
Lefever, Els",
booktitle = "Proceedings of the 2023 Conference on Empirical Methods in Natural Language Processing: System Demonstrations",
month = dec,
year = "2023",
address = "Singapore",
publisher = "Association for Computational Linguistics",
url = "https://aclanthology.org/2023.emnlp-demo.40",
doi = "10.18653/v1/2023.emnlp-demo.40",
pages = "431--445",
}
```