Release Notes#

The following sections summarize and highlight the changes for each release. For a complete record of changes in a release, refer to the CHANGELOG.md in the GitHub repository.

0.16.0#

Key Features#

Other Changes#

  • Added documentation about using KV cache reuse for LLM-based NemoGuard NIMs. By using KV cache reuse, you can improve the performance of LLM-based NemoGuard NIMs where the system prompt is the same for all calls up to the point where user query and LLM response are injected. To learn more, refer to KV Cache Reuse for NemoGuard NIM.

0.15.0#

Key Features#

Breaking Changes#

With the new tracing configuration, the following old configuration for tracing in config.yml is no longer supported.

#  No longer supported
tracing:
  enabled: true
  adapters:
    - name: OpenTelemetry
      service_name: "my-service"
      exporter: "console"

To find the new way of configuring tracing, refer to Tracing Configuration.

Deprecated Functions#

  • register_otel_exporter() is deprecated and will be removed in v0.16.0. Configure exporters directly in your application instead.

0.14.1#

Features#

  • Added direct API key configuration support for jailbreak detection. This change adds a new optional field api_key to the JailbreakDetectionConfig Pydantic model. This allows to provide an API Key in a RailsConfig object or YAML file, for use in Jailbreak NIM calls. Prior to this change, the api_key_env_var field used an environment variable (for example NVIDIA_API_KEY) to get the API Key for the Jailbreak NIM.

Fixed Issues#

  • Fixed lazy loading of jailbreak detection dependencies. Before, jailbreak detection imported unnecessary dependencies when using NIM, which led to installation of those dependencies even when not using the local model-based jailbreak detection.

  • Fixed constructor LLM configuration to properly load other config models.

  • Fixed content safety policy violations handling by replacing try-except with iterable unpacking.

  • Fixed numpy version compatibility by pinning to version 1.23.5 for scikit-learn compatibility.

  • Fixed iterable unpacking compatibility in content safety output parsers.

0.14.0#

Features#

  • Added support for Python 3.13.

  • Enhanced working with advanced reasoning models.

    • Added support for the NVIDIA Nemotron family of advanced reasoning models, such as Llama 3.1 Nemotron Ultra 253B V1.

    • Added the rails.output.apply_to_reasoning_traces field. When this field is True, output rails are applied to the reasoning traces and the model output. For more information, refer to Using LLMs with Reasoning Traces.

    • The reasoning_config.remove_thinking_traces field is deprecated and replaced by the reasoning_config.remove_reasoning_traces field that has the same purpose and subfields.

    • Previously, if remove_thinking_traces was set to True, the reasoning traces were omitted from the final response presented to the end user. In this release, remove_reasoning_traces controls whether reasoning traces are removed from internal tasks and has no effect on the final response presented to the user.

    • Using advanced reasoning models with dialog rails is not supported.

  • Simplified and broadened support for chat model providers from LangChain and LangChain Community chat model providers. You must use langchain version 0.2.14 or higher and langchain-community version 0.2.5 or higher. For information about using model providers, refer to The LLM Model.

  • Added support for code injection detection. For more information, refer to Injection Detection.

  • Enhanced the nemoguardrails CLI with a find-providers argument to list chat and text completion providers. For more information, refer to providers.

Breaking Changes#

  • Removed support for the NeMo LLM Service, nemollm. This provider reached end-of-life on February 5, 2025.

  • The HuggingFacePipelineCompatible provider is refactored. Previously, the class was available from the nemoguardrails.llm.providers package. In this release, the class is moved to the nemoguardrails.llm.providers.huggingface package.

Fixed Issues#

  • Fixed an issue when tracing is enabled. Previously, the response was replaced when tracing is enabled and could cause a crash or exception. In this release, the response is not modified when tracing is enabled. For more information, refer to PR #1103.

  • Fixed an issue with the self check output flow. Previously, the stop instruction was not executed when enable_rails_exceptions was enabled. In this release, the stop instruction correctly regardless of the enable_rails_execptions value. For more information, refer to PR #1126.

  • Previously, the model specification in the guardrails configuration file, config.yml, did not validate the model name. In this release you must specify the model name in the model top-level field or as model or model_name in the parameters field. For more information, refer to PR #1084.