> 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.

# Struct Annotated LlmRequest

> Structured view of an LLM request, produced by a Codec from opaque `LlmRequest` content.

Generated from `cargo doc --no-deps -p nemo-relay -p nemo-relay-adaptive -p nemo-relay-ffi`.

<pre />

Structured view of an LLM request, produced by a Codec from opaque [`LlmRequest`](/reference/api/rust-library-reference/nemo-relay/api/llm/struct-llmrequest) content.

The `extra` field captures any provider-specific keys not modeled by the known fields, ensuring lossless round-trip through `decode`/`encode`.

## Fields

### `messages: Vec<Message>`

Parsed conversation messages.

### `model: Option<String>`

Model identifier (e.g., `"gpt-4"`, `"claude-sonnet-4-20250514"`).

### `params: Option<GenerationParams>`

Common generation parameters, normalized.

### `tools: Option<Vec<ToolDefinition>>`

Tool definitions (function schemas) available to the model.

### `tool_choice: Option<ToolChoice>`

Tool choice control.

### `store: Option<bool>`

OpenAI Responses: whether to persist response state server-side.

### `previous_response_id: Option<String>`

OpenAI Responses: prior response to continue from.

### `truncation: Option<Json>`

OpenAI Responses: context truncation behavior.

### `reasoning: Option<Json>`

OpenAI Responses: reasoning configuration object.

### `include: Option<Json>`

OpenAI Responses: include filter for additional output/state items.

### `user: Option<String>`

OpenAI user identifier.

### `metadata: Option<Json>`

OpenAI metadata map/object.

### `service_tier: Option<String>`

OpenAI service tier preference.

### `parallel_tool_calls: Option<bool>`

OpenAI tool parallelism toggle.

### `max_output_tokens: Option<u64>`

OpenAI Responses max output token limit.

### `max_tool_calls: Option<u64>`

OpenAI Responses max tool calls.

### `top_logprobs: Option<u64>`

OpenAI logprob fanout count.

### `stream: Option<bool>`

OpenAI streaming toggle.

### `extra: Map<String, Json>`

Extensible key-value pairs for unmodeled provider-specific fields. Merged back into the request body during encode via `serde(flatten)`.

## Implementations

### `impl AnnotatedLlmRequest`

<pre />

#### `system_prompt`

<pre />

Extract the text content of the first system message, if any.

For [`MessageContent::Text`](/reference/api/rust-library-reference/nemo-relay/codec/request/enum-messagecontent), returns the string directly. For [`MessageContent::Parts`](/reference/api/rust-library-reference/nemo-relay/codec/request/enum-messagecontent), returns the text of the first [`ContentPart::Text`](/reference/api/rust-library-reference/nemo-relay/codec/request/enum-contentpart) part.

#### `last_user_message`

<pre />

Get the text content of the last user message, if any.

Searches messages in reverse order and returns the first user message found. For [`MessageContent::Parts`](/reference/api/rust-library-reference/nemo-relay/codec/request/enum-messagecontent), returns the text of the first [`ContentPart::Text`](/reference/api/rust-library-reference/nemo-relay/codec/request/enum-contentpart) part.

#### `has_tool_calls`

<pre />

Check if any assistant message in the conversation contains tool calls.

Returns `true` if at least one [`Message::Assistant`](/reference/api/rust-library-reference/nemo-relay/codec/request/enum-message) variant has a non-empty `tool_calls` field.

## Trait Implementations

### `impl Clone for AnnotatedLlmRequest`

<pre />

#### `clone`

<pre />

#### `clone_from`

<pre />

### `impl Debug for AnnotatedLlmRequest`

<pre />

#### `fmt`

<pre />

### `impl<'de> Deserialize<'de> for AnnotatedLlmRequest`

<pre />

#### `deserialize`

<pre />

### `impl PartialEq for AnnotatedLlmRequest`

<pre />

#### `eq`

<pre />

#### `ne`

<pre />

### `impl Serialize for AnnotatedLlmRequest`

<pre />

#### `serialize`

<pre />

### `impl StructuralPartialEq for AnnotatedLlmRequest`

<pre />