Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Guardrails — Программируемые защитные механизмы для LLM-чат-приложений: обеспечение входных/выходных ограничений, блокировка джейлбрейков и prompt-инъекций, обнаружение галлюцинаций и маскирование конфиденциальных данных. | Kitploit
Инструменты/GitHubGitHub/nvidia-nemo/guardrails
Оборонительные ИнструментыАнализ уязвимостейКонфиденциальностьМашинное ОбучениеБезопасность ИИОбнаружение АномалийТоп в Безопасность ИИ №10
GitHubnvidia-nemo/guardrails

Guardrails

Программируемые защитные механизмы для LLM-чат-приложений: обеспечение входных/выходных ограничений, блокировка джейлбрейков и prompt-инъекций, обнаружение галлюцинаций и маскирование конфиденциальных данных.

7.2k841551 день назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
РепозиторийСайт
Поделиться

Библиотека NVIDIA NeMo Guardrails

License PyPI PyPI - Python Version Tests/Linux Tests/Windows Tests/macOS Lint Code style: black Documentation arXiv Downloads Downloads

ПОСЛЕДНИЙ РЕЛИЗ / ВЕРСИЯ ДЛЯ РАЗРАБОТКИ: Ветка develop отслеживает последнюю версию в разработке. Последняя выпущенная версия — 0.24.1.

✨✨✨

📌 Официальная документация библиотеки NeMo Guardrails доступна по адресу docs.nvidia.com/nemo/guardrails.

✨✨✨

Библиотека NVIDIA NeMo Guardrails — это открытый набор инструментов для простого добавления программируемых guardrails в разговорные приложения на основе LLM. Guardrails (или сокращённо «rails») — это определённые способы управления выводом большой языковой модели, например: не говорить о политике, отвечать определённым образом на конкретные запросы пользователя, следовать предопределённому пути диалога, использовать определённый языковой стиль, извлекать структурированные данные и многое другое.

Эта статья представляет библиотеку NeMo Guardrails и содержит технический обзор системы и текущую оценку.

Требования

Python 3.10, 3.11, 3.12 или 3.13.

Установка

Для установки с помощью pip:```bash

pip install nemoguardrails

root@kitploit:~
Более подробные инструкции см. в [Руководстве по установке](https://docs.nvidia.com/nemo/guardrails/get-started/installation-guide).

## Обзор

<!-- start-documentation-reuse -->

Библиотека NeMo Guardrails позволяет разработчикам, создающим приложения на основе LLM, добавлять **программируемые ограждения** (programmable guardrails) между кодом приложения и LLM.

<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>

Ключевые преимущества добавления *программируемых ограждений*:

- **Создание надёжных, безопасных и защищённых приложений на основе LLM:** вы можете определять ограждения для управления и защиты диалогов; вы можете задать поведение вашего приложения на основе LLM по определённым темам и предотвратить его участие в обсуждениях нежелательных тем.

- **Безопасное подключение моделей, цепочек и других сервисов:** вы можете безопасно и бесшовно подключать LLM к другим сервисам (также известным как инструменты).

- **Управляемый диалог**: вы можете направлять LLM по заранее заданным сценариям разговора, что позволяет проектировать взаимодействие в соответствии с лучшими практиками дизайна диалогов и обеспечивать соблюдение стандартных операционных процедур (например, аутентификация, поддержка).

<!-- end-documentation-reuse -->

### Защита от уязвимостей LLM

Библиотека NeMo Guardrails предоставляет несколько механизмов защиты чат-приложений на основе LLM от распространённых уязвимостей LLM, таких как джейлбрейки и инъекции промптов. Ниже приведён примерный обзор защиты, обеспечиваемой различными конфигурациями ограждений для примера [ABC Bot](https://github.com/nvidia-nemo/guardrails/blob/develop/examples/bots/abc), включённого в этот репозиторий. Более подробную информацию см. на странице [Сканирование уязвимостей LLM](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>

### Сценарии использования

Программируемые ограждения можно применять в различных типах сценариев использования:

1. **Ответы на вопросы** по набору документов (также известное как Retrieval Augmented Generation): обеспечение проверки фактов и модерации вывода.
2. **Ассистенты для конкретных предметных областей** (также известные как чат-боты): обеспечение того, чтобы ассистент оставался в рамках темы и следовал спроектированным сценариям разговора.
3. **Конечные точки LLM**: добавление ограждений к вашей пользовательской LLM для более безопасного взаимодействия с клиентами.
4. **Цепочки LangChain** (опционально): если вы используете LangChain для какого-либо сценария, вы можете добавить слой ограждений вокруг ваших цепочек. Чтобы включить эту интеграцию, задайте переменную окружения `NEMOGUARDRAILS_LLM_FRAMEWORK=langchain` или вызовите `set_default_framework("langchain")`.

### Использование

Чтобы добавить программируемые ограждения в ваше приложение, вы можете использовать Python API или сервер ограждений (см. [Руководство по серверу](https://docs.nvidia.com/nemo/guardrails/get-started/integrate-into-application) для получения подробной информации). Использование Python API аналогично прямому использованию LLM. Вызов слоя ограждений вместо LLM требует лишь минимальных изменений в кодовой базе и включает два простых шага:

1. Загрузка конфигурации ограждений и создание экземпляра `LLMRails`.
2. Выполнение вызовов к LLM с использованием методов `generate`/`generate_async`.```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?"}

root@kitploit:~
Формат ввода и вывода для метода `generate` аналогичен [Chat Completions API](https://platform.openai.com/docs/guides/gpt/chat-completions-api) от OpenAI.

#### Асинхронный API

Библиотека NeMo Guardrails — это набор инструментов, ориентированный в первую очередь на асинхронность, поскольку основные механизмы реализованы с использованием асинхронной модели Python. Публичные методы имеют как синхронную, так и асинхронную версии. Например: `LLMRails.generate` и `LLMRails.generate_async`.

### Поддерживаемые LLM

Вы можете использовать NeMo Guardrails с несколькими LLM, такими как OpenAI GPT-3.5, GPT-4, LLaMa-2, Falcon, Vicuna или Mosaic. Для получения более подробной информации ознакомьтесь с разделом [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 работают с сообщениями в канонической форме, подробности см. в [Colang Guide](https://docs.nvidia.com/nemo/guardrails/configure-guardrails/colang)) и определяют, следует ли выполнить действие, следует ли вызвать LLM для генерации следующего шага или ответа, следует ли вместо этого использовать предопределённый ответ и т. д.

3. **Retrieval rails**: применяются к извлечённым фрагментам в случае сценария RAG (Retrieval Augmented Generation); retrieval rail может отклонить фрагмент, предотвратив его использование для формирования запроса к LLM, или изменить соответствующие фрагменты (например, для маскировки потенциально конфиденциальных данных).

4. **Execution rails**: применяются к входным/выходным данным пользовательских действий (также известных как инструменты), которые должны быть вызваны LLM.

5. **Output rails**: применяются к выходным данным, сгенерированным LLM; output rail может отклонить выходные данные, предотвратив их возврат пользователю, или изменить их (например, удалив конфиденциальные данные).

### Конфигурация Guardrails

Конфигурация guardrails определяет **LLM**, которые будут использоваться, и **один или несколько guardrails**. Конфигурация guardrails может включать любое количество input/dialog/output/retrieval/execution rails. Конфигурация без настроенных rails по сути будет перенаправлять запросы к LLM.

Стандартная структура папки конфигурации guardrails выглядит следующим образом:```
.
├── config
│   ├── actions.py
│   ├── config.py
│   ├── config.yml
│   ├── rails.co
│   ├── ...

config.yml содержит все общие параметры конфигурации, такие как модели LLM, активные rails и пользовательские данные конфигурации. Файл config.py содержит любой пользовательский код инициализации, а actions.py содержит любые пользовательские действия на Python. Для полного обзора см. Configuration Guide.

Ниже приведён пример config.yml:```yaml

config.yml

models:

  • type: main engine: openai model: gpt-3.5-turbo-instruct

rails:

Input rails are invoked when new input from the user is received.

input: flows: - check jailbreak - mask sensitive data on input

Output rails are triggered after a bot message has been generated.

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

root@kitploit:~
Файлы `.co`, включённые в конфигурацию guardrails, содержат определения 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

root@kitploit:~
### Colang

Для настройки и реализации различных типов guardrails этот инструментарий представляет **Colang** — язык моделирования, специально созданный для проектирования гибких, но при этом контролируемых диалоговых потоков. Colang имеет синтаксис, похожий на Python, и разработан так, чтобы быть простым и интуитивно понятным, особенно для разработчиков.```{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.

Чтобы начать работу с Colang 2.0, см. документацию Colang 2.0.

Библиотека Guardrails

NeMo Guardrails поставляется с набором встроенных 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.

root@kitploit:~
Библиотека включает guardrails для самопроверки LLM (модерация ввода/вывода, проверка фактов, обнаружение галлюцинаций), модели безопасности NVIDIA (безопасность контента, безопасность тем), обнаружение jailbreak и инъекций, а также интеграции с моделями сообщества и сторонними API. Полный список см. в [документации по библиотеке Guardrails](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

Вы можете использовать CLI библиотеки NeMo Guardrails для запуска сервера guardrails. Сервер может загружать одну или несколько конфигураций из указанной папки и предоставлять HTTP API для их использования.``` nemoguardrails server [--config PATH/TO/CONFIGS] [--port PORT]

root@kitploit:~
Например, чтобы получить завершение чата для конфигурации `sample`, можно использовать эндпоинт `/v1/chat/completions`:```
POST /v1/chat/completions

| -s | Silent mode. Suppress all output except errors. | | -v | Verbose mode. Show detailed progress information. | | -o <file> | Write output to the specified file instead of stdout. | | -f <format> | Specify output format: json, csv, or text. Default is text. | | -t <threads> | Number of concurrent threads to use. Default is 10. | | -T <seconds> | Timeout for each request in seconds. Default is 30. | | -r <retries> | Number of retry attempts for failed requests. Default is 3. | | | Use the specified proxy for all requests. | | | Add a custom HTTP header to all requests. Can be used multiple times. | | | Send the specified cookie with all requests. | | | Set a custom User-Agent string. | | | Disable colored output. | | | Enable debug mode for troubleshooting. |

Examples

Basic usage:

root@kitploit:~
./tool -u https://example.com

Scan multiple targets from a file:

root@kitploit:~
./tool -l targets.txt -o results.json -f json

Use a proxy with custom headers:

root@kitploit:~
./tool -u https://example.com -p http://127.0.0.1:8080 -H "Authorization: Bearer token"

Increase threads and reduce timeout for faster scanning:

root@kitploit:~
./tool -l targets.txt -t 50 -T 10

Configuration File

The tool supports a configuration file located at ~/.config/tool/config.yaml. Example configuration:

root@kitploit:~
threads: 20
timeout: 15
retries: 5
output_format: json
proxy: http://127.0.0.1:8080
headers:
  User-Agent: "Custom Agent"
  Accept: "*/*"

Exit Codes

Troubleshooting

Connection refused errors: Ensure the target is reachable and the port is open. Check firewall rules and network connectivity.

Timeout errors: Increase the timeout value using the -T flag. Consider reducing the number of threads if the target is rate-limiting requests.

SSL/TLS errors: Use the --insecure flag to skip certificate verification (not recommended for production use). Ensure your system's CA certificates are up to date.

Permission denied: Run the tool with appropriate privileges or check file permissions for output files.

Contributing

Contributions are welcome! Please follow these guidelines:

  1. Fork the repository and create a new branch for your feature or bug fix.
  2. Follow the existing code style and conventions.
  3. Write tests for new functionality.
  4. Update documentation as needed.
  5. Submit a pull request with a clear description of your changes.

License

This project is licensed under the MIT License. See the LICENSE file for details.```json { "config_id": "sample", "messages": [{ "role":"user", "content":"Hello! What can you do for me?" }] }

root@kitploit:~
Пример вывода:```json
{"role": "assistant", "content": "Hi! How can I help you?"}

Docker

Чтобы запустить сервер guardrails, вы также можете использовать контейнер Docker. Библиотека NeMo Guardrails предоставляет Dockerfile, который вы можете использовать для сборки образа nemoguardrails. Дополнительную информацию см. в разделе использование Docker.

Интеграция с LangChain (опционально)

Интеграция с LangChain включается по желанию. Чтобы включить её, задайте переменную окружения NEMOGUARDRAILS_LLM_FRAMEWORK=langchain или вызовите set_default_framework("langchain"). Затем установите пакеты LangChain, необходимые для вашей конфигурации. После включения интеграции вы можете обернуть конфигурацию guardrails вокруг цепочки LangChain (или любого Runnable), а также вызывать цепочку LangChain изнутри конфигурации guardrails. Дополнительную информацию см. в документации по интеграции с LangChain.

Оценка

Оценка безопасности разговорного приложения на основе LLM — сложная задача и по-прежнему открытый исследовательский вопрос. Для поддержки надлежащей оценки библиотека NeMo Guardrails предоставляет следующее:

  1. Инструмент оценки, т. е. nemoguardrails evaluate, с поддержкой тематических рельсов, проверки фактов, модерации (обнаружение джейлбрейков и модерация вывода) и галлюцинаций.
  2. Примеры отчётов о сканировании уязвимостей LLM, например ABC Bot — результаты сканирования уязвимостей LLM

Чем это отличается?

Существует множество способов добавления guardrails в разговорное приложение на основе LLM. Например: явные конечные точки модерации (например, OpenAI, ActiveFence, PolicyAI), цепочки критики (например, constitutional chain), разбор вывода (например, guardrails.ai), отдельные guardrails (например, LLM-Guard), обнаружение галлюцинаций для RAG-приложений (например, Got It AI, Patronus Lynx).

Библиотека NeMo Guardrails стремится предоставить гибкий набор инструментов, который может объединить все эти взаимодополняющие подходы в целостный слой guardrails для LLM. Например, набор инструментов предоставляет готовую интеграцию с ActiveFence, PolicyAI, AlignScore и цепочками LangChain.

Насколько нам известно, библиотека NeMo Guardrails — единственный набор инструментов guardrails, который также предлагает решение для моделирования диалога между пользователем и LLM. Это позволяет, с одной стороны, направлять диалог точным образом. С другой стороны, это обеспечивает тонкий контроль над тем, когда следует использовать определённые guardrails, например, применять проверку фактов только для определённых типов вопросов.

Узнать больше

  • Документация
  • Руководство по началу работы
  • Примеры
  • Часто задаваемые вопросы
  • Рекомендации по безопасности

Телеметрия и конфиденциальность

Библиотека NVIDIA NeMo Guardrails собирает анонимную телеметрию, чтобы помочь NVIDIA понять, какие шаблоны развёртывания и функции безопасности используются чаще всего. Библиотека отправляет одно событие использования при создании экземпляра LLMRails, IORails или Guardrails, а затем периодически отправляет сигналы Heartbeat из одного потока-демона на процесс. Эта телеметрия отделена от трассировки отдельных запросов. Трассировку вы настраиваете в своей конфигурации guardrails и отправляете в собственный бэкенд наблюдаемости. Телеметрия — это минимальный анонимный пинг в NVIDIA.

Снимок использования сообществом

Совокупное анонимное использование по точным сборкам релизов 0.22.0 и 0.23.0, 22 мая — 18 августа 2026 г.:

Сессии по типу рельсов

Сессии по встроенной функции

Настроенные рельсы при запуске

Последнее обновление: 18 августа 2026 г.

Телеметрия включает:

  • Установленную версию библиотеки, версию Python, операционную систему и строку платформы
  • Версию языка конфигурации Colang (1.0 или 2.x)
  • Названия настроенных провайдеров движков LLM, таких как openai, nim или nvidia_ai_endpoints, но никогда имена моделей или учётные данные
  • Количество настроенных потоков рельсов для входных, выходных, поисковых рельсов, рельсов ввода инструментов и вывода инструментов, а также какие категории рельсов активны
  • Названия активных встроенных функций библиотеки, таких как jailbreak_detection, content_safety или topic_safety
  • Количество пользовательских потоков Colang (только количество, никогда имена или содержимое потоков)
  • Настроены ли трассировка, потоковая передача или база знаний
  • Как вы развернули guardrails (сервер library, api или cli)
  • Какой движок рельсов времени выполнения используется (LLMRails или IORails)

В полезной нагрузке события не собирается никакой пользовательский контент. Полезная нагрузка не включает имена моделей, ключи API, конечные точки, промпты, ответы, количество токенов, метрики отдельных запросов, пути к файлам, имена пользователей или IP-адреса. NVIDIA использует данные в агрегированном виде для приоритизации инженерной работы и будет делиться тенденциями внедрения с сообществом.

Библиотека также пытается записать полезную нагрузку каждого события в локальный файл аудита по пути ~/.config/nemoguardrails/usage_stats.json. Файл аудита хранит JSONL событий, а не полный конверт телеметрии NVIDIA. Записи аудита выполняются по мере возможности, и передача телеметрии всё равно продолжается, если локальная запись аудита не удалась.

Задайте любой из следующих параметров, чтобы отключить телеметрию:```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

root@kitploit:~
Установите отказ от телеметрии до запуска библиотеки NVIDIA NeMo Guardrails. Изменение переменных среды или создание `do_not_track` после запуска телеметрии не остановит уже работающий поток heartbeat.

Обратитесь к [docs/telemetry.md](https://docs.nvidia.com/nemo/guardrails/latest/telemetry.html) для получения полной схемы и описания каждого поля.

Вы можете отказаться от сбора телеметрии в любое время. Отказ применяется только к сбору данных самой библиотекой NVIDIA NeMo Guardrails.

Сторонние конечные точки имеют отдельные условия и правила конфиденциальности. Библиотека NVIDIA NeMo Guardrails может использовать конечные точки вывода, такие как NVIDIA Build (`build.nvidia.com`). Если вы используете NVIDIA Build или другую стороннюю конечную точку, условия обслуживания и правила конфиденциальности этой конечной точки применяются независимо от библиотеки. Любой отказ от телеметрии в библиотеке NVIDIA NeMo Guardrails не распространяется на выбранную вами конечную точку. NVIDIA Build предназначен только для оценки и тестирования и не должен использоваться в производственных средах. Не передавайте конфиденциальную информацию или персональные данные при использовании NVIDIA Build.

## Приглашение сообщества к участию

Примеры rails, находящиеся в репозитории, являются отличными отправными точками. Мы с энтузиазмом приглашаем сообщество внести свой вклад в то, чтобы сделать возможности надёжных, безопасных и защищённых LLM доступными для всех. Руководство по настройке среды разработки и участию в разработке библиотеки NeMo Guardrails см. в [руководстве по участию](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](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",
}
Скачать инструмент
-p <proxy>
-H <header>
-c <cookie>
-A <user-agent>
--no-color
--debug
CodeDescription
0Success. No errors encountered.
1General error.
2Invalid arguments or options.
3Network error or connection failure.
4Authentication failure.
5Target not found or unreachable.
  • Случайный UUID на процесс для сопоставления событий из одного экземпляра. Библиотека генерирует его в памяти и не сохраняет для повторного использования между перезапусками, но включает его в записи аудита и передаваемые события телеметрии