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

# nemo_relay.codecs

> Protocol definitions for request and response codecs used by `nemo_relay.llm`.

Generated from `python/nemo_relay/codecs.pyi`.

Module `nemo_relay.codecs`.

Protocol definitions for request and response codecs used by `nemo_relay.llm`.

## Classes

### `LlmCodec(Protocol)`

Protocol for request codecs used by annotated LLM intercepts.

#### Methods

##### `decode`

```python
def decode(request: LLMRequest) -> AnnotatedLLMRequest
```

Decode a raw provider request into `AnnotatedLLMRequest`.

##### `encode`

```python
def encode(annotated: AnnotatedLLMRequest, original: LLMRequest) -> LLMRequest
```

Merge annotated edits back into the original raw request.

### `LlmResponseCodec(Protocol)`

Protocol for codecs that normalize raw LLM responses.

#### Methods

##### `decode_response`

```python
def decode_response(response: Json) -> AnnotatedLLMResponse
```

Decode a raw provider response into `AnnotatedLLMResponse`.

### `OpenAIChatCodec`

Built-in codec for OpenAI Chat Completions requests and responses.

#### Methods

##### `OpenAIChatCodec`

```python
def OpenAIChatCodec() -> None
```

Create an instance.

##### `decode`

```python
def decode(request: LLMRequest) -> AnnotatedLLMRequest
```

Decode an OpenAI Chat Completions request.

##### `encode`

```python
def encode(annotated: AnnotatedLLMRequest, original: LLMRequest) -> LLMRequest
```

Encode a normalized request back into Chat Completions format.

##### `decode_response`

```python
def decode_response(response: Json) -> AnnotatedLLMResponse
```

Decode an OpenAI Chat Completions response.

### `OpenAIResponsesCodec`

Built-in codec for OpenAI Responses requests and responses.

#### Methods

##### `OpenAIResponsesCodec`

```python
def OpenAIResponsesCodec() -> None
```

Create an instance.

##### `decode`

```python
def decode(request: LLMRequest) -> AnnotatedLLMRequest
```

Decode an OpenAI Responses request.

##### `encode`

```python
def encode(annotated: AnnotatedLLMRequest, original: LLMRequest) -> LLMRequest
```

Encode a normalized request back into Responses format.

##### `decode_response`

```python
def decode_response(response: Json) -> AnnotatedLLMResponse
```

Decode an OpenAI Responses response.

### `AnthropicMessagesCodec`

Built-in codec for Anthropic Messages requests and responses.

#### Methods

##### `AnthropicMessagesCodec`

```python
def AnthropicMessagesCodec() -> None
```

Create an instance.

##### `decode`

```python
def decode(request: LLMRequest) -> AnnotatedLLMRequest
```

Decode an Anthropic Messages request.

##### `encode`

```python
def encode(annotated: AnnotatedLLMRequest, original: LLMRequest) -> LLMRequest
```

Encode a normalized request back into Messages format.

##### `decode_response`

```python
def decode_response(response: Json) -> AnnotatedLLMResponse
```

Decode an Anthropic Messages response.