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.15.0#
Key Features#
Added parallel execution for input and output rails. To learn more, refer to Parallel Execution of Input and Output Rails.
Implemented a new way of configuring tracing. You can now use the OpenTelemetry SDK and the OpenTelemetry Protocol (OTLP) exporter while configuring the NeMo Guardrails clients in your application code directly. To learn more, refer to the basic tracing configuration guide and the advanced tracing configuration guide.
Updated the streaming capability of output rails to support parallel execution.
Added support for external async token generators. To learn more, refer to the Using External Async Token Generators section.
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 theJailbreakDetectionConfig
Pydantic model. This allows to provide an API Key in aRailsConfig
object or YAML file, for use in Jailbreak NIM calls. Prior to this change, theapi_key_env_var
field used an environment variable (for exampleNVIDIA_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 isTrue
, 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 thereasoning_config.remove_reasoning_traces
field that has the same purpose and subfields.Previously, if
remove_thinking_traces
was set toTrue
, 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
version0.2.14
or higher andlangchain-community
version0.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 afind-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 thenemoguardrails.llm.providers
package. In this release, the class is moved to thenemoguardrails.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 whenenable_rails_exceptions
was enabled. In this release, thestop
instruction correctly regardless of theenable_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 themodel
top-level field or asmodel
ormodel_name
in the parameters field. For more information, refer to PR #1084.