> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/nemo/guardrails/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/nemo/guardrails/_mcp/server.

# nemoguardrails.guardrails.guardrails_types

## Module Contents

### Classes

| Name                                                                         | Description                                  |
| ---------------------------------------------------------------------------- | -------------------------------------------- |
| [`RailDirection`](#nemoguardrails-guardrails-guardrails_types-RailDirection) | Direction of a rail check, used for logging. |
| [`RailResult`](#nemoguardrails-guardrails-guardrails_types-RailResult)       | Result of a rail safety check.               |

### Functions

| Name                                                                                   | Description                                                                                      |
| -------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ |
| [`_set_request_id`](#nemoguardrails-guardrails-guardrails_types-_set_request_id)       | Set an explicit request ID (e.g., derived from an OTEL trace ID).                                |
| [`get_request_id`](#nemoguardrails-guardrails-guardrails_types-get_request_id)         | Return the current per-request correlation ID.                                                   |
| [`reset_request_id`](#nemoguardrails-guardrails-guardrails_types-reset_request_id)     | Restore the request ID ContextVar to its previous value.                                         |
| [`set_new_request_id`](#nemoguardrails-guardrails-guardrails_types-set_new_request_id) | Generate a random request ID, set it in the current context, and return the reset token.         |
| [`truncate`](#nemoguardrails-guardrails-guardrails_types-truncate)                     | Return `str(text)` truncated to *max\_len* characters (default: LOG\_CONTENT\_TRUNCATE\_LENGTH). |

### Data

[`LLMMessage`](#nemoguardrails-guardrails-guardrails_types-LLMMessage)

[`LLMMessages`](#nemoguardrails-guardrails-guardrails_types-LLMMessages)

[`LOG_CONTENT_TRUNCATE_LENGTH`](#nemoguardrails-guardrails-guardrails_types-LOG_CONTENT_TRUNCATE_LENGTH)

[`REQUEST_ID_BYTES`](#nemoguardrails-guardrails-guardrails_types-REQUEST_ID_BYTES)

[`REQUEST_ID_HEX_CHARS`](#nemoguardrails-guardrails-guardrails_types-REQUEST_ID_HEX_CHARS)

[`_request_id_var`](#nemoguardrails-guardrails-guardrails_types-_request_id_var)

### API

```python
class nemoguardrails.guardrails.guardrails_types.RailDirection
```

**Bases:** `enum.Enum`

Direction of a rail check, used for logging.

**`INPUT`** `= 'Input'`

---

**`OUTPUT`** `= 'Output'`

---

```python
class nemoguardrails.guardrails.guardrails_types.RailResult(
    is_safe: bool,
    reason: str | None = None
)
```

Dataclass

Result of a rail safety check.

**`is_safe`** `bool`

---

**`reason`** `str | None = None`

---

```python
nemoguardrails.guardrails.guardrails_types._set_request_id(
    request_id: str
) -> contextvars.Token[str]
```

Set an explicit request ID (e.g., derived from an OTEL trace ID).

Unlike `set_new_request_id` which generates a random ID, this accepts
a caller-provided string.  Returns the reset token for use with
`reset_request_id`.

```python
nemoguardrails.guardrails.guardrails_types.get_request_id() -> str
```

Return the current per-request correlation ID.

```python
nemoguardrails.guardrails.guardrails_types.reset_request_id(
    token: contextvars.Token[str]
) -> None
```

Restore the request ID ContextVar to its previous value.

```python
nemoguardrails.guardrails.guardrails_types.set_new_request_id() -> contextvars.Token[str]
```

Generate a random request ID, set it in the current context, and return the reset token.

```python
nemoguardrails.guardrails.guardrails_types.truncate(
    text: object,
    max_len: int | None = None
) -> str
```

Return `str(text)` truncated to *max\_len* characters (default: LOG\_CONTENT\_TRUNCATE\_LENGTH).

```python
nemoguardrails.guardrails.guardrails_types.LLMMessage: TypeAlias = dict[str, Any]
```

```python
nemoguardrails.guardrails.guardrails_types.LLMMessages: TypeAlias = list[LLMMessage]
```

```python
nemoguardrails.guardrails.guardrails_types.LOG_CONTENT_TRUNCATE_LENGTH = 200
```

```python
nemoguardrails.guardrails.guardrails_types.REQUEST_ID_BYTES = 8
```

```python
nemoguardrails.guardrails.guardrails_types.REQUEST_ID_HEX_CHARS = REQUEST_ID_BYTES * 2
```

```python
nemoguardrails.guardrails.guardrails_types._request_id_var: ContextVar[str] = ContextVar('request_id', default='no-req-id')
```