NVIDIA NeMo Guardrails logo

NVIDIA NeMo Guardrails

打开

NVIDIA 开源可编程护栏工具包,用 Colang 流为 LLM 对话应用定义输入、对话、检索与输出护栏,防护越狱与提示注入。

分享:

NVIDIA NeMo Guardrails

NVIDIA NeMo Guardrails 是开源的可编程护栏工具包,用于给基于 LLM 的对话应用添加护栏。护栏(rails)是控制模型行为的显式规则:不谈论敏感话题、遵循预设对话路径、强制特定语言风格、掩码敏感数据,或拒绝不安全输入输出。它围绕 Colang 这一小型领域特定语言构建,是 LLM 安全与可信领域被引用最多的框架之一。

核心功能

  • 五类护栏:输入护栏过滤用户输入,对话护栏引导 LLM 如何被提示,检索护栏过滤 RAG 分块,执行护栏检查工具调用,输出护栏过滤模型响应。
  • Colang 流:用 *.co 文件定义对话行为,写法接近伪代码,覆盖越狱检查、敏感数据掩码、事实自检与审核。
  • 漏洞防护:内置针对越狱、提示注入等常见 LLM 弱点的机制,并提供 LLM 漏洞扫描评估工作流。
  • 模型无关:通过可插拔引擎层支持 OpenAI 模型、Llama 2 等,并可选集成 LangChain。
  • 异步优先:核心机制使用 Python 异步模型,公开 API 同时提供同步与异步版本。
  • 轻量接入:用 LLMRails.generate 包裹现有聊天端点,保持 OpenAI 兼容的输入输出格式。

适用场景

  • RAG 问答:在检索文档之上强制事实核查与输出审核。
  • 垂直领域助手:让聊天机器人保持在主题内并遵循设计的对话流程。
  • 生产 LLM 端点:为自定义 LLM 端点添加护栏,让客户交互更安全。
  • 智能体工具安全:用执行护栏限制智能体可调用的工具与服务。

定价方案

NeMo Guardrails 在 Apache-2.0 协议下免费开源。你只需为受护栏保护的应用消耗的底层 LLM API 付费。

快速开始

  1. pip install nemoguardrails 安装(Python 3.10-3.13)。
  2. 创建护栏配置目录,包含 config.yml 与 Colang 的 *.co 文件。
  3. 加载配置并包裹 LLM 调用:config = RailsConfig.from_path("PATH/TO/CONFIG"),然后 rails = LLMRails(config)
  4. 用 OpenAI 兼容的消息列表调用 rails.generate(messages=...)

常见问题

什么是 Colang?

Colang 是 NeMo Guardrails 用来定义护栏的小型 DSL。类似 define flow\n user express greeting\n bot express greeting 的流读起来几乎像规格说明,官方预置示例覆盖越狱检查与审核。

支持开源模型吗?

支持。引擎层可插拔,除了 OpenAI API 模型外,还支持 Llama 2 等模型。

NeMo Guardrails 和扫描器一样吗?

不一样。NeMo Guardrails 是运行时控制层,位于应用与 LLM 之间。要主动发现漏洞,可与 Garak 之类的扫描器配合使用。

替代方案

  • Garak:NVIDIA 的 LLM 漏洞扫描器,部署护栏前先找出漏洞。
  • Llama Guard 3:Meta 的输入输出审核分类模型。
  • Langfuse:LLM 应用可观测性与评估,补充运行时护栏。

使用技巧

  1. 先扫描再加护栏:用 Garak 发现弱点,再配置护栏封堵常见攻击路径。
  2. 从最小集开始:先定义一两个输入与输出护栏,再根据失败模式扩展对话与执行护栏。
  3. 与权限分层:护栏过滤模型说什么,独立的访问控制仍然限制应用可触达的工具与数据。

总结

NVIDIA NeMo Guardrails 是被引用最多的开源可编程 LLM 护栏框架,整合了干净的 Colang DSL、五类护栏与文档化的漏洞防护工作流。任何需要显式、可审计地控制模型行为的生产 LLM 或智能体应用,它都是免费且久经考验的起点。

评论

还没有评论。成为第一个评论的人!