Skip to content

Releases: NVIDIA/NeMo-Guardrails

v0.15.0

08 Aug 11:22
6ba7832
Compare
Choose a tag to compare

What's Changed

This release introduces performance improvements with parallel rails execution capabilities for both standard and streaming scenarios, enhanced tracing infrastructure using OpenTelemetry API, and several critical bug fixes for streaming functionality. The new parallel rails execution in Colang 1.0 can reduce latency when multiple rails are configured, as they now run concurrently rather than sequentially.

The migration to OpenTelemetry provides standardized observability with better integration into existing monitoring stacks, enabling detailed insights into LLM calls, rail execution times, and token usage across your guardrails. We intend to expand this observability in future release with adapting semantic conventions for Generative AI Systems.
Critical streaming fixes address word spacing issues in output rails (where text was being concatenated without proper delimiters) and restore accurate token counting for streaming LLM calls. These enhancements collectively deliver a more performant and observable guardrails system while maintaining full backward compatibility for existing Colang 1 configurations.

🚀 Features

  • (tracing) [breaking] Update tracing to use otel api (#1269)
  • (streaming) Implement parallel streaming output rails execution (#1263, #1324)
  • (streaming) Support external async token generators (#1286)
  • Support parallel rails execution (#1234, #1323)

🐛 Bug Fixes

  • (streaming) Resolve word concatenation in streaming output rails (#1259)
  • (streaming) Enable token usage tracking for streaming LLM calls (#1264, #1285)
  • (tracing) Prevent mutation of user options when tracing is enabled (#1273)
  • (rails) Prevent LLM parameter contamination in rails (#1306)

📚 Documentation

  • Release notes 0.14.1 (#1272)
  • Update guardrails-library.md to include Clavata as a third party API (#1294)
  • (streaming) Add section on token usage tracking (#1282)
  • Add parallel rail section and split config page (#1295)
  • Show complete prompts.yml content in getting started tutorial (#1311)
  • (tracing) Update and streamline tracing guide (#1307)

⚙️ Miscellaneous Tasks

  • (dependabot) Remove dependabot configuration (#1281)
  • (CI) Add release workflow (#1309, #1318)

New Contributors

Full Changelog: v0.14.1...v0.15.0

v0.14.1

08 Jul 18:50
v0.14.1
0acee85
Compare
Choose a tag to compare

What's Changed

This patch release addresses several important bug fixes and improvements, particularly focusing on jailbreak detection, LLMRails configuration handling, and content safety compatibility issues.

🚀 Features

  • (jailbreak) Add direct API key configuration support (#1260)

🐛 Bug Fixes

  • (jailbreak) Lazy load jailbreak detection dependencies (#1223)
  • (llmrails) Constructor LLM should not skip loading other config models (#1221, #1247, #1250, #1258)
  • (content_safety) Replace try-except with iterable unpacking for policy violations (#1207)
  • (jailbreak) Pin numpy==1.23.5 for scikit-learn compatibility (#1249)
  • (output_parsers) Iterable unpacking compatibility in content safety parsers (#1242)

📚 Documentation

  • More heading levels so RNs resolve links (#1228)
  • Update docs version (#1219)
  • Fix jailbreak detection build instructions (#1248)
  • Change ABC bot link at docs (#1261)

🧪 Testing

  • Fix async test failures in cache embeddings and buffer strategy tests (#1237)
  • (content_safety) Add tests for content safety actions (#1240)

⚙️ Miscellaneous Tasks

  • Update pre-commit-hooks to v5.0.0 (#1238)

New Contributors

Full Changelog: v0.14.0...v0.14.1

v0.14.0

11 Jun 18:58
v0.14.0
a9003d2
Compare
Choose a tag to compare

What's Changed

This release enhances support for advanced reasoning models, including the NVIDIA Nemotron family such as Llama 3.1 Nemotron Ultra 253B V1 and DeepSeek-r1. We have added new protections against certain code-injection security concerns, with an output guardrail based on YARA, a widely-adopted technology in the cybersecurity space for malware detection.

From the community, a new 3rd-party guardrail connects to Clavata’s customized LLM content moderation.
Among other improvements and bug fixes, this release also now supports Python 3.13.

🚀 Features

  • Change topic following prompt to allow chitchat (#1097)
  • Validate model name configuration (#1084)
  • Add support for langchain partner and community chat models (#1085)
  • Add fuzzy find provider capability to cli (#1088)
  • Add code injection detection to guardrails library (#1091)
  • Add clavata community integration (#1027)
  • Implement validation to forbid dialog rails with reasoning traces (#1137)
  • Load yara lazily to avoid action dispatcher error (#1162)
  • Add support for system messages to RunnableRails (#1106)
  • Add api_key_env_var to Model, pass in kwargs to langchain initializer (#1142)
  • Add inline YARA rules support (#1164)
  • [breaking] Add support for preserving and optionally applying guardrails to reasoning traces (#1145)
  • Prevent reasoning traces from contaminating LLM prompt history (#1169)
  • Add RailException support to injection detection and improve error handling (#1178)
  • Add Nemotron model support with message-based prompts (#1199)

🐛 Bug Fixes

  • Correct task name for self_check_facts (#1040)
  • Error in LLMRails with tracing enabled (#1103)
  • Self check output colang 1 flow (#1126)
  • Use ValueError in TaskPrompt to resolve TypeError raised by Pydantic (#1132)
  • Correct dialog rails activation logic (#1161)
  • Allow reasoning traces when embeddings_only is True (#1170)
  • Prevent explain_info overwrite during stream_async (#1194)
  • Colang 2 issues in community integrations (#1140)
  • Ensure proper asyncio task cleanup in test_streaming_handler.py (#1182)

🚜 Refactor

  • Reorganize HuggingFace provider structure (#1083)
  • Remove support for deprecated nemollm engine (#1076)
  • [breaking] Remove deprecated return_context argument (#1147)
  • Rename remove_thinking_traces field to remove_reasoning_traces (#1176)
  • Update deprecated field handling for remove_thinking_traces (#1196)
  • Introduce END_OF_STREAM sentinel and update handling (#1185)

📚 Documentation

  • Remove markup from code block (#1081)
  • Replace img tag with Markdown images (#1087)
  • Remove NeMo Service (nemollm) documentation (#1077)
  • Update cleanlab integration description (#1080)
  • Add providers fuzzy search cli command (#1089)
  • Clarify purpose of model parameters field in configuration guide (#1181)
  • Output rails are supported with streaming (#1007)
  • Add mention of Nemotron (#1200)
  • Fix output rail doc (#1159)
  • Revise GS example in getting started doc (#1146)
  • Possible update to injection detection (#1144)

⚙️ Miscellaneous Tasks

  • Dynamically set version using importlib.metadata (#1072)
  • Add link to topic control config and prompts (#1098)
  • Reorganize GitHub workflows for better test coverage (#1079)
  • Add summary jobs for workflow branch protection (#1120)
  • Add Adobe Analytics configuration (#1138)
  • Fix and revert poetry lock to its stable state (#1133)
  • Add Codecov integration to workflows (#1143)
  • Add Python 3.12 and 3.13 test jobs to gitlab workflow (#1171)
  • Identify OS packages to install in contribution guide(#1136)
  • Remove Got It AI from ToC in 3rd party docs(#1213)

New Contributors

Full Changelog: v0.13.0...v0.14.0

v0.13.0

25 Mar 18:25
v0.13.0
a3aac8d
Compare
Choose a tag to compare

What's Changed

This release adds support for multimodal input and output rails, allowing users to check for the safety of both text and image prompts and vision-language model outputs. We introduce new support for models with reasoning traces, such as Deepseek-R1, and we have added support for the NemoGuard JailbreakDetect NIM.
This release adds a new integration with Fiddler Guardrails, providing access to Fiddler’s low-latency hosted guardrail models for content safety, hallucination detection, and more. We also added support for Python 3.12 .

🚀 Features

🐛 Bug Fixes

  • Ensure parse_task_output is called after all llm_call invocations (#1047) by @Pouyanpi
  • Handle exceptions in generate_events to propagate errors in streaming (#1012) by @Pouyanpi
  • Ensure output rails streaming is enabled explicitly (#1045) by @Pouyanpi
  • Improve multimodal prompt length calculation for base64 images (#1053) by @Pouyanpi

🚜 Refactor

  • Move startup and shutdown logic to lifespan in server (#999) by @xiaobo8204

📚 Documentation

⚙️ Miscellaneous Tasks

New Contributors

Full Changelog: v0.12.0...v0.13.0

v0.12.0

26 Feb 18:10
v0.12.0
839ad77
Compare
Choose a tag to compare

What's Changed

This release adds support for streaming LLM content through output rails for more responsive, real-time interactions . It also includes a new integration with Prompt Security, as well as updates to our integrations with ActiveFence and Private AI.

🚀 Features

🐛 Bug Fixes

📚 Documentation

⚙️ Miscellaneous Tasks

New Contributors

Full Changelog: v0.11.1...v0.12.0

v0.11.1

16 Jan 22:25
v0.11.1
1ef3210
Compare
Choose a tag to compare

This release adds support for three new NVIDIA NemoGuard NIM microservices. These are new safeguard models, developed by NVIDIA, that help AI agents operate at scale while maintaining controlled behavior:

What's Changed

Added

Changed

  • AutoAlign Integration: Add further enhancements and refactoring to AutoAlign integration (#867) by @KimiJL

Fixed

  • PrivateAI Integration: Fix Incomplete URL substring sanitization Error (#883) by @NJ-186
  • Content Safety: Fix typo in content safety prompts (#873) by @krishna-sreeraj-tw

Documentation

  • NVIDIA Blueprint: Add Safeguarding AI Virtual Assistant NIM Blueprint NemoGuard NIMs (#932) by @abodhankar

  • ActiveFence Integration: Fix flow definition in community docs (#890) by @noamlevy81

New Contributors

Full Changelog: v0.11.0...v0.11.1

v0.11.0

19 Nov 13:54
01fceb2
Compare
Choose a tag to compare

This release introduces new features and essential bug fixes. Key highlights of this release include support for Observability, Private AI, and Patronus Evaluate API Integrations, along with an upgrade to Langchain 3. Additionally, we have dropped support for Python 3.8 as it has reached its End of Life. You can now exclude specific files from being included in your RailsConfig by using a .railsignore file. Once this file is placed, its rules apply to all files within its directory and all of its subdirectories.

What's Changed

Added

  • Observability: Add observability support with support for different backends (#844) by @Pouyanpi
  • Private AI Integration: Add Private AI Integration (#815) by @letmerecall
  • Patronus Evaluate API Integration: Patronus Evaluate API Integration (#834) by @varjoshi
  • railsignore: Add support for .railsignore file (#790) by @ajanitshimanga
  • Passthrough Support: Add passthrough support in Colang 2 (#779) by @Pouyanpi

Changed

  • Sandboxed Environment in Jinja2: Add sandboxed environment in Jinja2 (#799) by @Pouyanpi
  • Langchain 3 support: Upgrade LangChain to Version 0.3 (#784) by @Pouyanpi
  • Python 3.8: Drop support for Python 3.8 (#803) by @Pouyanpi
  • vllm: Bump vllm from 0.2.7 to 0.5.5 for llama_guard and patronusai(#836)
  • Colang 2.0-beta.5: Upgrade Colang 2 version including new attention library besides other features and bugfixes (Colang 2 Changelog)

Fixed

  • Colang: Multiline string values in interaction history prompting (#765) by @radinshayanfar
  • Guardrails Library documentation": Fix a typo in guardrails library documentation (#793) by @vedantnaik19
  • Contributing Guide: Fix incorrect folder name & pre-commit setup in CONTRIBUTING.md (#800) by @SSK-14
  • Contributing Guide: Added correct Python command version in documentation(#801) by @ravinder-tw
  • retrieve chunk action: Fix presence of new line in retrieve chunk action (#809) by @Pouyanpi
  • Standard Library import: Fix guardrails standard library import path in Colang 2.0 (#835) by @Pouyanpi
  • AlignScore Dockerfile: Add nltk's punkt_tab in align_score Dockerfile (#841) by @yonromai
  • Eval dependencies: Make pandas version constraint explicit for eval optional dependency (#847) by @Pouyanpi
  • tests: Mock PromptSession to prevent console error (#851) by @Pouyanpi
  • Streaming: Handle multiple output parsers in generation (#854) by @Pouyanpi
  • Colang: Nested if else construct parsing (#833) by @radinshayanfar
  • User Guide: Update role from bot to assistant (#852) by @Pouyanpi

Documentation

  • Installation Guide: Update optional dependencies install (#853) by @Pouyanpi
  • Documentation Restructuring: Restructure the docs and several style enhancements (#855) by @Pouyanpi
  • Got It AI deprecation: Add deprecation notice for Got It AI integration (#857) by @mlmonk

New Contributors

Full Changelog: v0.10.1...v0.11.0

v0.10.1

02 Oct 18:38
f0766f6
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.10.0...v0.10.1

v0.10.0

27 Sep 21:47
f6e9f9a
Compare
Choose a tag to compare

This release introduces enhancements to elevate your AI development experience. Key highlights of this release include the introduction of a Content Safety Module, which aids in the integration of different content safety models, a new Migration Tool that facilitates migration from Colang 1.0 or Colang 2-alpha to the latest version of Colang 2 by handling a significant part of the conversion, support for the NeMo Guardrails standard library in Colang 2.x, added support for Rails Exception Handling within both Colang 1.0 and 2.x, and the addition of a Debugging Tool for Colang 2.x.

This update also includes numerous bug fixes and performance improvements contributed by our community.

What's Changed

New Contributors

Full Changelog: v0.9.1.1...v0.10.0

Release v0.9.1.1

26 Jul 11:09
dec482d
Compare
Choose a tag to compare

This patch release fixes bug #651 introduced in 0.9.1.

Fixed

  • #650 Fix gpt-3.5-turbo-instruct prompts #651.

Full Changelog: v0.9.1...v0.9.1.1