> This page is for NeMo Relay, version dev.
> For other versions, use one of these documentation indexes:
> - Latest (v0.11.1) (default): https://docs.nvidia.com/nemo/relay/latest/llms.txt
> - dev: https://docs.nvidia.com/nemo/relay/dev/llms.txt
> - v0.11.1: https://docs.nvidia.com/nemo/relay/v0.11.1/llms.txt
> - v0.10.4: https://docs.nvidia.com/nemo/relay/v0.10.4/llms.txt
> - v0.9.4: https://docs.nvidia.com/nemo/relay/v0.9.4/llms.txt
> - v0.8.4: https://docs.nvidia.com/nemo/relay/v0.8.4/llms.txt
> - v0.7.3: https://docs.nvidia.com/nemo/relay/v0.7.3/llms.txt

> 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 AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/nemo/relay/_mcp/server.

# Struct Annotated LlmResponse

> Normalized completed response, usage, pricing, and optimization evidence.

Generated from `cargo doc --no-deps -p nemo-relay-builtins -p nemo-relay-diagnostics -p nemo-relay-logging -p nemo-relay-plugin-host -p nemo-relay-codecs -p nemo-relay -p nemo-relay-runtime -p nemo-relay-model-pricing -p nemo-relay-resource-metrics -p nemo-relay-observability -p nemo-relay-adaptive -p nemo-relay-pii-redaction -p nemo-relay-ffi -p nemo-relay-types -p nemo-relay-plugin -p nemo-relay-worker-proto -p nemo-relay-worker`.

<pre />

Normalized completed response, usage, pricing, and optimization evidence.

## Fields

### `id: Option<String>`

Response ID from the API (e.g., "chatcmpl-abc123", "resp_abc123", "msg_abc123").

### `model: Option<String>`

The model that actually served the request (may differ from requested model).

### `message: Option<MessageContent>`

The assistant's response content, reusing `MessageContent` from request types.

### `tool_calls: Option<ResponseToolCallList>`

Tool calls requested by the model, normalized across APIs. Uses `ResponseToolCall` (arguments as `Json`) NOT the request-side `ToolCall` (arguments as `String`).

### `finish_reason: Option<FinishReason>`

Why generation stopped, normalized across APIs.

### `usage: Option<Usage>`

Token usage statistics.

### `optimization_summary: Option<LlmOptimizationSummary>`

Plugin-neutral optimization accounting computed by Relay at LLM close.

### `api_specific: Option<JsonValue>`

API-specific response data that cannot be normalized across providers.

### `extra: HashMap<String, JsonValue>`

Catch-all for unmodeled top-level fields, ensuring lossless round-trip.

## Implementations

### `impl AnnotatedLlmResponse`

<pre />

#### `id`

<pre />

Returns the value of `id`, or the default value if `id` is unset.

#### `model`

<pre />

Returns the value of `model`, or the default value if `model` is unset.

## Trait Implementations

### `impl Clone for AnnotatedLlmResponse`

<pre />

#### `clone`

<pre />

#### `clone_from`

<pre />

### `impl Debug for AnnotatedLlmResponse`

<pre />

#### `fmt`

<pre />

### `impl Default for AnnotatedLlmResponse`

<pre />

#### `default`

<pre />

### `impl Message for AnnotatedLlmResponse`

<pre />

#### `encoded_len`

<pre />

#### `clear`

<pre />

#### `encode`

<pre />

#### `encode_to_vec`

<pre />

#### `encode_length_delimited`

<pre />

#### `encode_length_delimited_to_vec`

<pre />

#### `decode`

<pre />

#### `decode_length_delimited`

<pre />

#### `merge`

<pre />

#### `merge_length_delimited`

<pre />

### `impl Name for AnnotatedLlmResponse`

<pre />

#### `NAME`

<pre />

#### `PACKAGE`

<pre />

#### `full_name`

<pre />

#### `type_url`

<pre />

### `impl PartialEq for AnnotatedLlmResponse`

<pre />

#### `eq`

<pre />

#### `ne`

<pre />

### `impl WireValue<AnnotatedLlmResponse> for AnnotatedLlmResponse`

<pre />

#### `to_wire`

<pre />

#### `from_wire`

<pre />

### `impl StructuralPartialEq for AnnotatedLlmResponse`

<pre />