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

# Function llm_call_execute

> Execute an LLM call through the managed middleware pipeline.

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

Execute an LLM call through the managed middleware pipeline.

This runs conditional-execution guardrails, request intercepts, and sanitize-request guardrails, emits the LLM-start event, then runs execution intercepts, the provider callback when it is not replaced, and sanitize-response guardrails in the runtime-defined order.

## Parameters

* `name`: Logical provider or model family name recorded on emitted events.
* `request`: Raw [`LlmRequest`](/reference/api/rust-library-reference/nemo-relay/struct-llmrequest) passed into the managed pipeline.
* `func`: Provider callback or execution continuation.
* `parent`: Optional explicit parent scope for the emitted LLM span.
* `attributes`: LLM attribute bitflags applied to the managed span.
* `data`: Optional application payload stored on the managed LLM handle. It may be used on failure end events that have no output payload.
* `metadata`: Optional JSON metadata recorded on emitted events.
* `model_name`: Optional normalized model name for observability output.
* `codec`: Optional request codec used to produce annotated request data for intercepts and events.
* `response_codec`: Optional response codec used to attach annotated response data to the end event.

## Returns

A [`Result`](/reference/api/rust-library-reference/nemo-relay/type-result) containing the raw JSON response returned by the callback or an execution intercept.

## Errors

Returns [`FlowError::GuardrailRejected`](/reference/api/rust-library-reference/nemo-relay/enum-flowerror) when conditional-execution guardrails block the call, or any error raised by request intercepts, execution intercepts, codecs, or the callback itself.

## Notes

The LLM-start event is emitted before execution intercepts run. Before sanitize-request guardrails run, the runtime removes standard credential headers from the event-only request copy; the request passed to execution is unchanged. When execution fails after that point, the runtime still emits an LLM-end event without an output payload.

Response codecs enrich observability output only and do not change the value returned to the caller.