Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
ccaeb19
chore: prepare for release v0.19.0 (#1519)
github-actions[bot] Dec 3, 2025
30f61b2
docs: restructuring and add local build automation (#1528)
miyoungc Dec 10, 2025
65d3f2a
chore(test): reduce default pytest log level from DEBUG to WARNING (#…
Pouyanpi Dec 10, 2025
f2e77ac
chore(docker): upgrade to Python 3.12-slim base image (#1522)
Pouyanpi Dec 10, 2025
9b59488
chore(deps): restrict pytest version to <9.0.0 (#1536)
Pouyanpi Dec 10, 2025
58f6e57
feat: propagate model and base URL in LLMCallException; improve error…
JashG Dec 11, 2025
5c0c461
test: remove temp files created in aiperf unit-tests (#1539)
tgasser-nv Dec 12, 2025
2f74cb6
fix: surface relevant exception when initializing langchain model (#1…
JashG Dec 13, 2025
3b86f9a
test(llm): add model initialization scenario tests (#1544)
Pouyanpi Dec 16, 2025
5942a94
feat(content_safety): add support to auto select multilingual refusal…
Pouyanpi Dec 16, 2025
3ab7a4f
docs(streaming): update streaming configuration documentation (#1542)
Pouyanpi Dec 16, 2025
05c895e
docs: add multilingual refusal messages documentation (#1541)
Pouyanpi Dec 16, 2025
c20ac11
docs: PM updates to Guardrails library docs (#1543)
alexahaushalter Dec 17, 2025
18b0439
docs: add frontmatter and card updates (#1549)
miyoungc Dec 18, 2025
79da249
docs: more updates in the top pages (#1552)
miyoungc Dec 18, 2025
89300b8
More PM doc updates (#1553)
alexahaushalter Dec 19, 2025
4f6c05f
Colang 2.0 PM doc updates (#1555)
alexahaushalter Dec 19, 2025
72e2e6e
chore: run pre-commits to update license date for 2026 (#1562)
Pouyanpi Jan 5, 2026
21aa9d4
feat(library): adding GLiNER for PII detection (open alternative to P…
andreatgretel Jan 5, 2026
109a36d
chore: Move Benchmark code to top-level (#1559)
tgasser-nv Jan 5, 2026
50cd525
docs: update top pages, add use case diagrams, refresh frontmatter an…
miyoungc Jan 6, 2026
14b39cb
fix(llm): filter temperature parameter for OpenAI reasoning models (#…
Pouyanpi Jan 6, 2026
643d915
docs(integrations): reorg langchain and move alignscore and safeguard…
Pouyanpi Jan 7, 2026
46906f1
docs(observability): fix broken links (#1561)
Pouyanpi Jan 7, 2026
79101d2
feat(benchmark): Implement Mock LLM streaming (#1564)
tgasser-nv Jan 8, 2026
d4697a8
docs: improve doc (#1568)
miyoungc Jan 8, 2026
7fcc534
docs(about): About NeMo Guardrails Library (#1573)
tgasser-nv Jan 9, 2026
e7060b7
docs(run-rails): updates for clarity and correctness (#1560)
Pouyanpi Jan 9, 2026
647074f
refactor(streaming)!: drop streaming field from config (#1538)
Pouyanpi Jan 13, 2026
8e8c053
docs(readme): update badges to use dynamic PyPI and GitHub Actions so…
Pouyanpi Jan 13, 2026
b6f4e6c
feat: add reasoning guardrail connector (#1565)
makeshn Jan 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
25 changes: 25 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,31 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
>
> The changes related to the Colang language and runtime have moved to [CHANGELOG-Colang](./CHANGELOG-Colang.md) file.

## [0.19.0] - 2025-12-03

### 🚀 Features

- Support langchain v1 ([#1472](https://github.com/NVIDIA/NeMo-Guardrails/issues/1472))
- *(llm)* Add LangChain 1.x content blocks support for reasoning and tool calls ([#1496](https://github.com/NVIDIA/NeMo-Guardrails/issues/1496))
- *(benchmark)* Add Procfile to run Guardrails and mock LLMs ([#1490](https://github.com/NVIDIA/NeMo-Guardrails/issues/1490))
- *(benchmark)*: Add AIPerf run script (([#1501](https://github.com/NVIDIA/NeMo-Guardrails/issues/1501)))

### 🐛 Bug Fixes

- *(llm)* Add async streaming support to ChatNVIDIA provider patch ([#1504](https://github.com/NVIDIA/NeMo-Guardrails/issues/1504))
- ensure stream_async background task completes before exit ([#1508](https://github.com/NVIDIA/NeMo-Guardrails/issues/1508))
- *(cli)* Fix TypeError in v2.x chat due to incorrect State/dict conversion ([#1509](https://github.com/NVIDIA/NeMo-Guardrails/issues/1509))
- *(llmrails)*: skip output rails when dialog disabled and no bot_message provided ([#1518](https://github.com/NVIDIA/NeMo-Guardrails/issues/1518))
- *(llm)*: ensure that stop token is not ignored if llm_params is None ([#1529](https://github.com/NVIDIA/NeMo-Guardrails/issues/1529))

### ⚙️ Miscellaneous Tasks

- *(llm)* Remove deprecated llm_params module ([#1475](https://github.com/NVIDIA/NeMo-Guardrails/issues/1475))

### ◀️ Revert

- *(llm)* Remove custom HTTP headers patch now in langchain-nvidia-ai-endpoints v0.3.19 ([#1503](https://github.com/NVIDIA/NeMo-Guardrails/issues/1503))

## [0.18.0] - 2025-11-06

### 🚀 Features
Expand Down
6 changes: 3 additions & 3 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.

FROM python:3.10
FROM python:3.12-slim

# Install git and gcc/g++ for annoy
RUN apt-get update && apt-get install -y git gcc g++
RUN apt-get update && apt-get install -y --no-install-recommends git gcc g++ \
&& rm -rf /var/lib/apt/lists/*

# Set POETRY_VERSION environment variable
ENV POETRY_VERSION=1.8.2
Expand Down
18 changes: 17 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
.PHONY: all test tests test_watch test_coverage test_profile docs pre_commit help
.PHONY: all test tests test_watch test_coverage test_profile docs docs-serve docs-update-cards docs-check-cards docs-watch-cards pre_commit help

# Default target executed when no specific target is provided to make.
all: help
Expand All @@ -24,6 +24,18 @@ test_profile:
docs:
poetry run sphinx-build -b html docs _build/docs

docs-serve:
cd docs && poetry run sphinx-autobuild . _build/html --port 8000 --open-browser

docs-update-cards:
cd docs && poetry run python scripts/update_cards/update_cards.py

docs-check-cards:
cd docs && poetry run python scripts/update_cards/update_cards.py --dry-run

docs-watch-cards:
cd docs && poetry run python scripts/update_cards/update_cards.py watch

pre_commit:
pre-commit install
pre-commit run --all-files
Expand All @@ -39,4 +51,8 @@ help:
@echo 'test_watch - run unit tests in watch mode'
@echo 'test_coverage - run unit tests with coverage'
@echo 'docs - build docs, if you installed the docs dependencies'
@echo 'docs-serve - serve docs locally with auto-rebuild on changes'
@echo 'docs-update-cards - update grid cards in index files from linked pages'
@echo 'docs-check-cards - check if grid cards are up to date (dry run)'
@echo 'docs-watch-cards - watch for file changes and auto-update cards'
@echo 'pre_commit - run pre-commit hooks'
18 changes: 12 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,19 @@
# NeMo Guardrails

[![Tests](https://img.shields.io/badge/Tests-passing-green)](#)
[![License](https://img.shields.io/badge/License-Apache%202.0-brightgreen.svg)](https://github.com/NVIDIA/NeMo-Guardrails/blob/main/LICENSE.md)
[![PyPI version](https://badge.fury.io/py/nemoguardrails.svg)](https://badge.fury.io/py/nemoguardrails)
[![Python 3.8+](https://img.shields.io/badge/python-3.8%2B-green)](https://www.python.org/downloads/)
[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
[![PyPI](https://img.shields.io/pypi/v/nemoguardrails)](https://pypi.org/project/nemoguardrails)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/nemoguardrails)](https://pypi.org/project/nemoguardrails)
[![Tests/Linux](https://img.shields.io/github/actions/workflow/status/NVIDIA/NeMo-Guardrails/pr-tests.yml?logo=github&label=Tests%2FLinux)](https://github.com/NVIDIA/NeMo-Guardrails/actions/workflows/pr-tests.yml)
[![Tests/Windows](https://img.shields.io/github/actions/workflow/status/NVIDIA/NeMo-Guardrails/full-tests.yml?logo=github&label=Tests%2FWindows)](https://github.com/NVIDIA/NeMo-Guardrails/actions/workflows/full-tests.yml)
[![Tests/macOS](https://img.shields.io/github/actions/workflow/status/NVIDIA/NeMo-Guardrails/full-tests.yml?logo=github&label=Tests%2FmacOS)](https://github.com/NVIDIA/NeMo-Guardrails/actions/workflows/full-tests.yml)
[![Lint](https://img.shields.io/github/actions/workflow/status/NVIDIA/NeMo-Guardrails/lint.yml?logo=github&label=Lint)](https://github.com/NVIDIA/NeMo-Guardrails/actions/workflows/lint.yml)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![arXiv](https://img.shields.io/badge/arXiv-2310.10501-b31b1b.svg)](https://arxiv.org/abs/2310.10501)
[![Documentation](https://img.shields.io/badge/docs-nvidia.com-blue.svg)](https://docs.nvidia.com/nemo/guardrails)
[![arXiv](https://img.shields.io/badge/cs.CL-arXiv%3A2310.10501-b31b1b.svg)](https://arxiv.org/abs/2310.10501)
[![Downloads](https://static.pepy.tech/badge/nemoguardrails)](https://pepy.tech/project/nemoguardrails)
[![Downloads](https://static.pepy.tech/badge/nemoguardrails/month)](https://pepy.tech/project/nemoguardrails)

> **LATEST RELEASE / DEVELOPMENT VERSION**: The [main](https://github.com/NVIDIA/NeMo-Guardrails/tree/main) branch tracks the latest released beta version: [0.18.0](https://github.com/NVIDIA/NeMo-Guardrails/tree/v0.18.0). For the latest development version, checkout the [develop](https://github.com/NVIDIA/NeMo-Guardrails/tree/develop) branch.
> **LATEST RELEASE / DEVELOPMENT VERSION**: The [main](https://github.com/NVIDIA/NeMo-Guardrails/tree/main) branch tracks the latest released beta version: [0.19.0](https://github.com/NVIDIA/NeMo-Guardrails/tree/v0.19.0). For the latest development version, checkout the [develop](https://github.com/NVIDIA/NeMo-Guardrails/tree/develop) branch.

✨✨✨

Expand Down
8 changes: 8 additions & 0 deletions benchmark/Procfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Procfile

# NeMo Guardrails server
gr: poetry run nemoguardrails server --config ../examples/configs/content_safety_local --default-config-id content_safety_local --port 9000

# Guardrails NIMs for inference. PYTHONPATH is set to the project root so absolute imports work
app_llm: PYTHONPATH=.. python mock_llm_server/run_server.py --workers 4 --port 8000 --config-file mock_llm_server/configs/meta-llama-3.3-70b-instruct.env
cs_llm: PYTHONPATH=.. python mock_llm_server/run_server.py --workers 4 --port 8001 --config-file mock_llm_server/configs/nvidia-llama-3.1-nemoguard-8b-content-safety.env
71 changes: 44 additions & 27 deletions nemoguardrails/benchmark/README.md → benchmark/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,29 +14,40 @@ All models use the [Mock LLM Server](mock_llm_server), which is a simplified mod
The aim of this benchmark is to detect performance-regressions as quickly as running unit-tests.

## Quickstart: Running Guardrails with Mock LLMs

To run Guardrails with mocks for both the content-safety and main LLM, follow the steps below.
All commands must be run in the `nemoguardrails/benchmark` directory.
These assume you already have a working environment after following the steps in [CONTRIBUTING.md](../../CONTRIBUTING.md).
All commands must be run in the `benchmark` directory.

### 1. Set up benchmarking virtual environment

The benchmarking tools have their own dependencies, which are managed using a virtual environment, pip, and the [requirements.txt](requirements.txt) file.
In this section, you'll create a new virtual environment, activate it, and install all the dependencies needed to benchmark Guardrails.

First, we need to install the honcho and langchain-nvidia-ai-endpoints packages.
The `honcho` package is used to run Procfile-based applications, and is a Python port of [Foreman](https://github.com/ddollar/foreman).
The `langchain-nvidia-ai-endpoints` package is used to communicate with Mock LLMs via Langchain.
First you'll create the virtual environment and install dependencies.

```shell
# Install dependencies
$ poetry run pip install honcho langchain-nvidia-ai-endpoints
# Create a virtual environment under ~/env/benchmark_env and activate it

$ cd benchmark
$ mkdir ~/env
$ python -m venv ~/env/benchmark_env
$ pip install -r requirements.txt
...
Successfully installed filetype-1.2.0 honcho-2.0.0 langchain-nvidia-ai-endpoints-0.3.19
Successfully installed fastapi-0.128.0 honcho-2.0.0 httpx-0.28.1 langchain-core-1.2.5 numpy-2.4.0 pydantic-2.12.5 pydantic-core-2.41.5 pydantic-settings-2.12.0 pyyaml-6.0.3 typer-0.21.0 typing-inspection-0.4.2 uuid-utils-0.12.0 uvicorn-0.40.0
$ source ~/env/benchmark_env/bin/activate
(benchmark_env) $
```

### 2. Run Guardrails with Mock LLMs for Content-Safety and Application LLM

Now we can start up the processes that are part of the [Procfile](Procfile).
As the Procfile processes spin up, they log to the console with a prefix. The `system` prefix is used by Honcho, `app_llm` is the Application or Main LLM mock, `cs_llm` is the content-safety mock, and `gr` is the Guardrails service. We'll explore the Procfile in more detail below.
Once the three 'Uvicorn running on ...' messages are printed, you can move to the next step. Note these messages are likely not on consecutive lines.

```
# All commands must be run in the nemoguardrails/benchmark directory
$ cd nemoguardrails/benchmark
$ poetry run honcho start
```shell
# These commands must be run in the benchmark directory after activating the benchmark_env virtual environment

(benchmark_env) $ honcho start
13:40:33 system | gr.1 started (pid=93634)
13:40:33 system | app_llm.1 started (pid=93635)
13:40:33 system | cs_llm.1 started (pid=93636)
Expand All @@ -48,34 +59,34 @@ $ poetry run honcho start
13:40:45 gr.1 | INFO: Uvicorn running on http://0.0.0.0:9000 (Press CTRL+C to quit)
```

Once Guardrails and the mock servers are up, we can use the `validate_mocks.py` script to check they're healthy and serving the correct models.
### 3. Validate services are running correctly

Once Guardrails and the mock servers are up, we'll use the [validate_mocks.sh](scripts/validate_mocks.sh) script to validate everything is working.
This doesn't require the `benchmark_env` virtual environment since we're running curl commands in the script.

```shell
$ cd nemoguardrails/benchmark
$ poetry run python validate_mocks.py
# In a new shell, change into the benchmark directory and run these commands.

$ cd benchmark
$ scripts/validate_mocks.sh
Starting LLM endpoint health check...

--- Checking Port: 8000 ---
Checking http://localhost:8000/health ...
HTTP Request: GET http://localhost:8000/health "HTTP/1.1 200 OK"
Health Check PASSED: Status is 'healthy'.
Checking http://localhost:8000/v1/models for 'meta/llama-3.3-70b-instruct'...
HTTP Request: GET http://localhost:8000/v1/models "HTTP/1.1 200 OK"
Model Check PASSED: Found 'meta/llama-3.3-70b-instruct' in model list.
--- Port 8000: ALL CHECKS PASSED ---

--- Checking Port: 8001 ---
Checking http://localhost:8001/health ...
HTTP Request: GET http://localhost:8001/health "HTTP/1.1 200 OK"
Health Check PASSED: Status is 'healthy'.
Checking http://localhost:8001/v1/models for 'nvidia/llama-3.1-nemoguard-8b-content-safety'...
HTTP Request: GET http://localhost:8001/v1/models "HTTP/1.1 200 OK"
Model Check PASSED: Found 'nvidia/llama-3.1-nemoguard-8b-content-safety' in model list.
--- Port 8001: ALL CHECKS PASSED ---

--- Checking Port: 9000 (Rails Config) ---
Checking http://localhost:9000/v1/rails/configs ...
HTTP Request: GET http://localhost:9000/v1/rails/configs "HTTP/1.1 200 OK"
HTTP Status PASSED: Got 200.
Body Check PASSED: Response is an array with at least one entry.
--- Port 9000: ALL CHECKS PASSED ---
Expand All @@ -88,10 +99,12 @@ Port 9000 (Rails Config): PASSED
Overall Status: All endpoints are healthy!
```

### 4. Make Guardrails requests

Once the mocks and Guardrails are running and the script passes, we can issue curl requests against the Guardrails `/chat/completions` endpoint to generate a response and test the system end-to-end.

```shell
curl -s -X POST http://0.0.0.0:9000/v1/chat/completions \
$ curl -s -X POST http://0.0.0.0:9000/v1/chat/completions \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
Expand All @@ -104,6 +117,7 @@ curl -s -X POST http://0.0.0.0:9000/v1/chat/completions \
],
"stream": false
}' | jq

{
"messages": [
{
Expand All @@ -112,7 +126,6 @@ curl -s -X POST http://0.0.0.0:9000/v1/chat/completions \
}
]
}

```

------
Expand All @@ -123,20 +136,22 @@ In this section, we'll examine the configuration files used in the quickstart ab

### Procfile

The [Procfile](Procfile?raw=true) contains all the processes that make up the application.
The [Procfile](Procfile) contains all the processes that make up the application.
The Honcho package reads in this file, starts all the processes, and combines their logs to the console
The `gr` line runs the Guardrails server on port 9000 and sets the default Guardrails configuration as [content_safety_colang1](configs/guardrail_configs/content_safety_colang1?raw=true).
The `gr` line runs the Guardrails server on port 9000 and sets the default Guardrails configuration as [content_safety_local](../examples/configs/content_safety_local).
The `app_llm` line runs the Application or Main Mock LLM. Guardrails calls this LLM to generate a response to the user's query. This server uses 4 uvicorn workers and runs on port 8000. The configuration file here is a Mock LLM configuration, not a Guardrails configuration.
The `cs_llm` line runs the Content-Safety Mock LLM. This uses 4 uvicorn workers and runs on port 8001.

### Guardrails Configuration
The [Guardrails Configuration](configs/guardrail_configs/content_safety_colang1/config.yml) is used by the Guardrails server.

The [Guardrails Configuration](../examples/configs/content_safety_local/config.yml) is used by the Guardrails server.
Under the `models` section, the `main` model is used to generate responses to the user queries. The base URL for this model is the `app_llm` Mock LLM from the Procfile, running on port 8000. The `model` field has to match the Mock LLM model name.
The `content_safety` model is configured for use in an input and output rail. The `type` field matches the `$model` used in the input and output flows.

### Mock LLM Endpoints

The Mock LLM implements a subset of the OpenAI LLM API.
There are two Mock LLM configurations, one for the Mock [main model](configs/mock_configs/meta-llama-3.3-70b-instruct.env), and another for the Mock [content-safety](configs/mock_configs/nvidia-llama-3.1-nemoguard-8b-content-safety.env) model.
There are two Mock LLM configurations, one for the Mock [main model](mock_llm_server/configs/meta-llama-3.3-70b-instruct.env), and another for the Mock [content-safety](mock_llm_server/configs/nvidia-llama-3.1-nemoguard-8b-content-safety.env) model.
The Mock LLM has the following OpenAI-compatible endpoints:

* `/health`: Returns a JSON object with status set to healthy and timestamp in seconds-since-epoch. For example `{"status":"healthy","timestamp":1762781239}`
Expand All @@ -145,6 +160,7 @@ The Mock LLM has the following OpenAI-compatible endpoints:
* `/v1/chat/completions`: Returns an [OpenAI chat completion object](https://platform.openai.com/docs/api-reference/chat/object) using the Mock configuration (see below).

### Mock LLM Configuration

Mock LLMs are configured using the `.env` file format. These files are passed to the Mock LLM using the `--config-file` argument.
The Mock LLMs return either a `SAFE_TEXT` or `UNSAFE_TEXT` response to `/v1/completions` or `/v1/chat/completions` inference requests.
The probability of the `UNSAFE_TEXT` being returned if given by `UNSAFE_PROBABILITY`.
Expand All @@ -155,8 +171,9 @@ The latency of each response is also controllable, and works as follows:
* If the sampled value is less than `LATENCY_MAX_SECONDS`, it is set to `LATENCY_MAX_SECONDS`.

The full list of configuration fields is shown below:

* `MODEL`: The Model name served by the Mock LLM. This will be returned on the `/v1/models` endpoint.
* `UNSAFE_PROBABILITY`: Probability of an unsafe response. This is a probability, and must be in the range [0, 1].
* `UNSAFE_PROBABILITY`: Probability of an unsafe response. This must be in the range [0, 1].
* `UNSAFE_TEXT`: String returned as an unsafe response.
* `SAFE_TEXT`: String returned as a safe response.
* `LATENCY_MIN_SECONDS`: Minimum latency in seconds.
Expand Down
10 changes: 5 additions & 5 deletions benchmark/aiperf/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@ Instead of manually running AIPerf multiple times with different parameters, you
### Prerequisites

These steps have been tested with Python 3.11.11.
To use the provided configurations, you need to create accounts at https://build.nvidia.com/ and [Huggingface](https://huggingface.co/).
* The provided configurations use models hosted at https://build.nvidia.com/, you'll need to create a Personal API Key to access the models.
* The provided AIperf configurations require the [Meta Llama 3.3 70B Instruct tokenizer](https://huggingface.co/meta-llama/Llama-3.3-70B-Instruct) to calculate token-counts.
To use the provided configurations, you need to create accounts at <https://build.nvidia.com/> and [Huggingface](https://huggingface.co/).
- The provided configurations use models hosted at <https://build.nvidia.com/>, you'll need to create a Personal API Key to access the models.
- The provided AIperf configurations require the [Meta Llama 3.3 70B Instruct tokenizer](https://huggingface.co/meta-llama/Llama-3.3-70B-Instruct) to calculate token-counts.

1. **Create a virtual environment in which to install AIPerf**

Expand All @@ -37,13 +37,13 @@ To use the provided configurations, you need to create accounts at https://build
$ pip install aiperf huggingface_hub typer
```

3. ** Login to Hugging Face:**
3. **Login to Hugging Face:**

```bash
huggingface-cli login
```

4. ** Set NVIDIA API Key:**
4. **Set NVIDIA API Key:**

The provided configs use models hosted on [build.nvidia.com](https://build.nvidia.com/).
To access these, [create an account](https://build.nvidia.com/), and create a Personal API Key.
Expand Down
2 changes: 1 addition & 1 deletion benchmark/aiperf/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
Expand Down
2 changes: 1 addition & 1 deletion benchmark/aiperf/__main__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
Expand Down
2 changes: 1 addition & 1 deletion benchmark/aiperf/aiperf_models.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
Expand Down
2 changes: 1 addition & 1 deletion benchmark/aiperf/run_aiperf.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
Expand Down
Loading