Skip to content

Commit 7c80936

Browse files
authored
Forward-merge release/1.3 into develop (#880)
Forward-merge triggered by push to release/1.3 that creates a PR to keep develop up-to-date. If this PR is unable to be immediately merged due to conflicts, it will remain open for the team to manually merge. See [forward-merger docs](https://docs.rapids.ai/maintainers/forward-merger/) for more info.
2 parents dc8c6c3 + 85ddbd0 commit 7c80936

File tree

38 files changed

+356
-53
lines changed

38 files changed

+356
-53
lines changed

.coderabbit.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ reviews:
2828
issue_assessment:
2929
mode: warning
3030
auto_review:
31+
base_branches: ["develop", "release/.*"]
3132
enabled: true
3233
drafts: false
3334
auto_incremental_review: true

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,13 +81,13 @@ pip install nvidia-nat
8181
NeMo Agent Toolkit has many optional dependencies which can be installed with the core package. Optional dependencies are grouped by framework and can be installed with the core package. For example, to install the LangChain/LangGraph plugin, run the following:
8282

8383
```bash
84-
pip install nvidia-nat[langchain]
84+
pip install "nvidia-nat[langchain]"
8585
```
8686

8787
Or for all optional dependencies:
8888

8989
```bash
90-
pip install nvidia-nat[all]
90+
pip install "nvidia-nat[all]"
9191
```
9292

9393
The full list of optional dependencies can be found [here](./docs/source/quick-start/installing.md#framework-integrations).

ci/scripts/gitlab/report_test_results.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ def add_text(text: str, blocks: list[dict], plain_text: list[str]) -> None:
9999

100100

101101
def build_messages(junit_data: dict[str, typing.Any], coverage_data: str) -> ReportMessages:
102+
branch_name = os.environ.get("CI_COMMIT_BRANCH", "unknown")
102103
num_errors = junit_data['num_errors']
103104
num_failures = junit_data['num_failures']
104105

@@ -107,7 +108,7 @@ def build_messages(junit_data: dict[str, typing.Any], coverage_data: str) -> Rep
107108
plain_text = []
108109
blocks = []
109110

110-
summary_line = f"Nightly CI/CD Test Results for {date.today()}"
111+
summary_line = f"Nightly CI/CD Test Results for `{branch_name}` - {date.today()}"
111112
plain_text.append(summary_line + "\n")
112113

113114
num_errors_and_failures = num_errors + num_failures

ci/vale/styles/config/vocabularies/nat/accept.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ onboarding
102102
[Oo]verfitting
103103
pandas
104104
[Pp]arallelization
105+
Pareto
105106
[Pp]arsable
106107
Patronus
107108
PCIe

docs/source/extend/telemetry-exporters.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -266,14 +266,14 @@ Before creating a custom exporter, check if your observability service is alread
266266
| Service | Type | Installation | Configuration |
267267
|---------|------|-------------|---------------|
268268
| **File** | `file` | `pip install nvidia-nat` | local file or directory |
269-
| **Langfuse** | `langfuse` | `pip install nvidia-nat[opentelemetry]` | endpoint + API keys |
270-
| **LangSmith** | `langsmith` | `pip install nvidia-nat[opentelemetry]` | endpoint + API key |
271-
| **OpenTelemetry Collector** | `otelcollector` | `pip install nvidia-nat[opentelemetry]` | endpoint + headers |
272-
| **Patronus** | `patronus` | `pip install nvidia-nat[opentelemetry]` | endpoint + API key |
273-
| **Galileo** | `galileo` | `pip install nvidia-nat[opentelemetry]` | endpoint + API key |
274-
| **Phoenix** | `phoenix` | `pip install nvidia-nat[phoenix]` | endpoint |
275-
| **RagaAI/Catalyst** | `catalyst` | `pip install nvidia-nat[ragaai]` | API key + project |
276-
| **Weave** | `weave` | `pip install nvidia-nat[weave]` | project name |
269+
| **Langfuse** | `langfuse` | `pip install "nvidia-nat[opentelemetry]"` | endpoint + API keys |
270+
| **LangSmith** | `langsmith` | `pip install "nvidia-nat[opentelemetry]"` | endpoint + API key |
271+
| **OpenTelemetry Collector** | `otelcollector` | `pip install "nvidia-nat[opentelemetry]"` | endpoint + headers |
272+
| **Patronus** | `patronus` | `pip install "nvidia-nat[opentelemetry]"` | endpoint + API key |
273+
| **Galileo** | `galileo` | `pip install "nvidia-nat[opentelemetry]"` | endpoint + API key |
274+
| **Phoenix** | `phoenix` | `pip install "nvidia-nat[phoenix]"` | endpoint |
275+
| **RagaAI/Catalyst** | `catalyst` | `pip install "nvidia-nat[ragaai]"` | API key + project |
276+
| **Weave** | `weave` | `pip install "nvidia-nat[weave]"` | project name |
277277

278278
### Simple Configuration Example
279279

@@ -412,7 +412,7 @@ class CustomSpanExporter(SpanExporter[Span, dict]):
412412
> **Note**: OpenTelemetry exporters require the `nvidia-nat-opentelemetry` subpackage. Install it with:
413413

414414
> ```bash
415-
> pip install nvidia-nat[opentelemetry]
415+
> pip install "nvidia-nat[opentelemetry]"
416416
> ```
417417

418418
For most OTLP-compatible services, use the pre-built `OTLPSpanAdapterExporter`:

docs/source/quick-start/installing.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,13 +92,13 @@ pip install nvidia-nat
9292
NeMo Agent toolkit has many optional dependencies which can be installed with the core package. Optional dependencies are grouped by framework and can be installed with the core package. For example, to install the LangChain/LangGraph plugin, run the following:
9393

9494
```bash
95-
pip install nvidia-nat[langchain]
95+
pip install "nvidia-nat[langchain]"
9696
```
9797

9898
Or for all optional dependencies:
9999

100100
```bash
101-
pip install nvidia-nat[all]
101+
pip install "nvidia-nat[all]"
102102
```
103103

104104
The full list of optional dependencies can be found [here](../quick-start/installing.md#framework-integrations).

docs/source/reference/api-server-endpoints.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ result back to the client. The transaction schema is defined by the workflow.
6161
## Asynchronous Generate
6262
The asynchronous generate endpoint allows clients to submit a workflow to run in the background and return a response immediately with a unique identifier for the workflow. This can be used to query the status and results of the workflow at a later time. This is useful for long-running workflows, which would otherwise cause the client to time out.
6363

64-
This endpoint is only available when the `async_endpoints` optional dependency extra is installed. For users installing from source, this can be done by running `uv pip install -e '.[async_endpoints]'` from the root directory of the NeMo Agent toolkit library. Similarly, for users installing from PyPI, this can be done by running `pip install 'nvidia-nat[async_endpoints]'`.
64+
This endpoint is only available when the `async_endpoints` optional dependency extra is installed. For users installing from source, this can be done by running `uv pip install -e '.[async_endpoints]'` from the root directory of the NeMo Agent toolkit library. Similarly, for users installing from PyPI, this can be done by running `pip install "nvidia-nat[async_endpoints]"`.
6565

6666
Asynchronous jobs are managed using [Dask](https://docs.dask.org/en/stable/). By default, a local Dask cluster is created at start time, however you can also configure the server to connect to an existing Dask scheduler by setting the `scheduler_address` configuration parameter. The Dask scheduler is used to manage the execution of asynchronous jobs, and can be configured to run on a single machine or across a cluster of machines. Job history and metadata is stored in a SQL database using [SQLAlchemy](https://www.sqlalchemy.org/). By default, a temporary SQLite database is created at start time, however you can also configure the server to use a persistent database by setting the `db_url` configuration parameter. Refer to the [SQLAlchemy documentation](https://docs.sqlalchemy.org/en/20/core/engines.html#database-urls) for the format of the `db_url` parameter. Any database supported by [SQLAlchemy's Asynchronous I/O extension](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html) can be used. Refer to [SQLAlchemy's Dialects](https://docs.sqlalchemy.org/en/20/dialects/index.html) for a complete list (many but not all of these support Asynchronous I/O).
6767

docs/source/reference/evaluate-api.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ limitations under the License.
2020
It is recommended that the [Evaluating NeMo Agent toolkit Workflows](./evaluate.md) guide be read before proceeding with this detailed documentation.
2121
:::
2222

23-
The evaluation endpoint can be used to start evaluation jobs on a remote NeMo Agent toolkit server. This endpoint is only available when the `async_endpoints` optional dependency extra is installed. For users installing from source, this can be done by running `uv pip install -e '.[async_endpoints]'` from the root directory of the NeMo Agent toolkit library. Similarly, for users installing from PyPI, this can be done by running `pip install 'nvidia-nat[async_endpoints]'`.
23+
The evaluation endpoint can be used to start evaluation jobs on a remote NeMo Agent toolkit server. This endpoint is only available when the `async_endpoints` optional dependency extra is installed. For users installing from source, this can be done by running `uv pip install -e '.[async_endpoints]'` from the root directory of the NeMo Agent toolkit library. Similarly, for users installing from PyPI, this can be done by running `pip install "nvidia-nat[async_endpoints]"`.
2424

2525
## Evaluation Endpoint Overview
2626
```{mermaid}

docs/source/workflows/evaluate.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ uv pip install -e '.[profiling]'
3434

3535
If you are installing from a package, you can install the sub-package by running the following command:
3636
```bash
37-
uv pip install nvidia-nat[profiling]
37+
uv pip install "nvidia-nat[profiling]"
3838
```
3939

4040
## Evaluating a Workflow

docs/source/workflows/llms/index.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ NVIDIA NeMo Agent toolkit supports the following LLM providers:
2626
| [OpenAI](https://openai.com) | `openai` | OpenAI API |
2727
| [AWS Bedrock](https://aws.amazon.com/bedrock/) | `aws_bedrock` | AWS Bedrock API |
2828
| [Azure OpenAI](https://learn.microsoft.com/en-us/azure/ai-foundry/openai/quickstart) | `azure_openai` | Azure OpenAI API |
29+
| [LiteLLM](https://github.com/BerriAI/litellm) | `litellm` | LiteLLM API |
2930

3031

3132
## LLM Configuration
@@ -47,6 +48,9 @@ llms:
4748
azure_openai_llm:
4849
_type: azure_openai
4950
azure_deployment: gpt-4o-mini
51+
litellm_llm:
52+
_type: litellm
53+
model_name: gpt-4o
5054
```
5155
5256
### NVIDIA NIM
@@ -128,6 +132,22 @@ The Azure OpenAI LLM provider is defined by the {py:class}`~nat.llm.azure_openai
128132
`temperature` is model-gated and may not be supported by all models. See [Gated Fields](../../extend/gated-fields.md) for details.
129133
:::
130134

135+
### LiteLLM
136+
137+
LiteLLM is a general purpose LLM provider that can be used with any model provider that is supported by LiteLLM.
138+
See the [LiteLLM provider documentation](https://docs.litellm.ai/docs/providers) for more information on how to use LiteLLM.
139+
140+
The LiteLLM LLM provider is defined by the {py:class}`~nat.llm.litellm_llm.LiteLlmModelConfig` class.
141+
142+
* `model_name` - The name of the model to use (dependent on the model provider)
143+
* `api_key` - The API key to use for the model (dependent on the model provider)
144+
* `base_url` - The base URL to use for the model
145+
* `seed` - The seed to use for the model
146+
* `temperature` - The temperature to use for the model
147+
* `top_p` - The top-p value to use for the model
148+
* `max_retries` - The maximum number of retries for the request
149+
150+
131151
## Testing Provider
132152
### `nat_test_llm`
133153
`nat_test_llm` is a development and testing provider intended for examples and CI. It is not intended for production use.

0 commit comments

Comments
 (0)