> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/nemo/relay/_mcp/server. # Module codec > LLM codec types, traits, and built-in implementations. Generated from `cargo doc --no-deps -p nemo-relay -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`. LLM codec types, traits, and built-in implementations. This module provides the type system and traits for bidirectional request codecs ([`traits::LlmCodec`](/reference/api/rust-library-reference/nemo-relay/codec/traits/trait-llmcodec) / [`request::AnnotatedLlmRequest`](/reference/api/rust-library-reference/nemo-relay/codec/request/struct-annotatedllmrequest)), the decode-only response codec ([`traits::LlmResponseCodec`](/reference/api/rust-library-reference/nemo-relay/codec/traits/trait-llmresponsecodec) / [`response::AnnotatedLlmResponse`](/reference/api/rust-library-reference/nemo-relay/codec/response/struct-annotatedllmresponse)), and the streaming response codec ([`streaming::StreamingCodec`](/reference/api/rust-library-reference/nemo-relay/codec/streaming/trait-streamingcodec)) used with the managed streaming LLM execution pipeline. [`resolve`](/reference/api/rust-library-reference/nemo-relay/codec/resolve) is the detect-then-decode entry point for selecting a built-in provider codec from a raw payload when no codec annotation is present. ## Modules * [anthropic](/reference/api/rust-library-reference/nemo-relay/codec/anthropic): Built-in codec for the Anthropic Messages API. * [model\_pricing](/reference/api/rust-library-reference/nemo-relay/codec/model_pricing): Data-driven LLM model pricing used to layer cost estimates onto usage. * [openai\_chat](/reference/api/rust-library-reference/nemo-relay/codec/openai_chat): Built-in codec for the OpenAI Chat Completions API. * [openai\_responses](/reference/api/rust-library-reference/nemo-relay/codec/openai_responses): Built-in codec for the OpenAI Responses API. * [request](/reference/api/rust-library-reference/nemo-relay/codec/request): Re-exported normalized LLM request data types. * [resolve](/reference/api/rust-library-reference/nemo-relay/codec/resolve): Provider-surface detection and best-effort normalization: the preferred path for turning raw provider JSON into normalized types when no codec annotation is present. * [response](/reference/api/rust-library-reference/nemo-relay/codec/response): Re-exported normalized LLM response data types and core pricing helpers. * [streaming](/reference/api/rust-library-reference/nemo-relay/codec/streaming): Streaming response codecs for the managed LLM execution pipeline. * [traits](/reference/api/rust-library-reference/nemo-relay/codec/traits): LLM codec traits for bidirectional request translation. > LLM codec types, traits, and built-in implementations. ## Docs - [Module anthropic](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/anthropic.md): Built-in codec for the Anthropic Messages API. - [Struct Anthropic Messages Codec](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/anthropic/struct-anthropicmessagescodec.md): Built-in codec for the Anthropic Messages API. - [Struct Anthropic Messages Streaming Codec](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/anthropic/struct-anthropicmessagesstreamingcodec.md): Streaming counterpart to `AnthropicMessagesCodec`. - [Module model_pricing](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/model_pricing.md): Data-driven LLM model pricing used to layer cost estimates onto usage. - [Enum Cache Read Accounting](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/model_pricing/enum-cachereadaccounting.md): How cache-read tokens relate to prompt token counts in provider usage. - [Struct Model Pricing](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/model_pricing/struct-modelpricing.md): Per-token model pricing expressed in USD per one million tokens. - [Struct Pricing Catalog](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/model_pricing/struct-pricingcatalog.md): Collection of model pricing entries. - [Enum Pricing Catalog Error](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/model_pricing/enum-pricingcatalogerror.md): Errors produced while parsing or validating a model pricing catalog. - [Struct Pricing Config](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/model_pricing/struct-pricingconfig.md): Runtime model pricing resolver configuration. - [Struct Pricing Resolver](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/model_pricing/struct-pricingresolver.md): Ordered model pricing lookup chain. - [Struct Token Rate Tier](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/model_pricing/struct-tokenratetier.md): A model pricing tier selected by prompt/input token count. - [Trait Pricing Source](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/model_pricing/trait-pricingsource.md): Pluggable model pricing source interface. - [Enum Pricing Source Config](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/model_pricing/enum-pricingsourceconfig.md): Declarative model pricing source supported by Relay configuration. - [Enum Pricing Unit](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/model_pricing/enum-pricingunit.md): Billing unit represented by a model pricing entry. - [Struct Prompt Cache Pricing](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/model_pricing/struct-promptcachepricing.md): Prompt-cache accounting rules for a model pricing entry. - [Struct Token Pricing Rates](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/model_pricing/struct-tokenpricingrates.md): Token rates expressed as USD per one million tokens. - [Enum Rate Schedule Application](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/model_pricing/enum-ratescheduleapplication.md): How a selected rate-schedule tier applies to billable usage. - [Function active_pricing_resolver](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/model_pricing/fn-active-pricing-resolver.md): Returns the active process-wide model pricing resolver. - [Enum Token Rate Schedule](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/model_pricing/enum-tokenrateschedule.md): Data-driven token rate schedule for model pricing with request thresholds. - [Function attach_estimated_cost](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/model_pricing/fn-attach-estimated-cost.md): Adds a model pricing estimate to a normalized response when cost is missing. - [Function attach_estimated_cost_for_provider](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/model_pricing/fn-attach-estimated-cost-for-provider.md): Adds a provider-aware model pricing estimate to a normalized response when cost is missing. - [Function estimate_cost](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/model_pricing/fn-estimate-cost.md): Estimates USD cost for a model/usage pair when model pricing is known. - [Function estimate_cost_for_provider](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/model_pricing/fn-estimate-cost-for-provider.md): Estimates USD cost for a provider/model pair when model pricing is known. - [Function estimate_cost_with_catalog](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/model_pricing/fn-estimate-cost-with-catalog.md): Estimates USD cost using the provided catalog. - [Function estimate_cost_with_provider](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/model_pricing/fn-estimate-cost-with-provider.md): Estimates USD cost using the provided catalog and provider/model pair. - [Function infer_model_provider](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/model_pricing/fn-infer-model-provider.md): Infers a provider/route value for a decoded model. - [Function pricing_for_model](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/model_pricing/fn-pricing-for-model.md): Returns known model pricing for a model ID. - [Function pricing_for_provider](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/model_pricing/fn-pricing-for-provider.md): Returns known model pricing for a provider/model pair. - [Function reset_active_pricing_resolver](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/model_pricing/fn-reset-active-pricing-resolver.md): Restores the active process-wide model pricing resolver to an empty resolver. - [Function set_active_pricing_resolver](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/model_pricing/fn-set-active-pricing-resolver.md): Replaces the active process-wide model pricing resolver. - [Module openai_chat](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/openai_chat.md): Built-in codec for the OpenAI Chat Completions API. - [Struct OpenAI Chat Codec](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/openai_chat/struct-openaichatcodec.md): Built-in codec for the OpenAI Chat Completions API. - [Struct OpenAI Chat Streaming Codec](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/openai_chat/struct-openaichatstreamingcodec.md): Streaming counterpart to `OpenAIChatCodec`. - [Module openai_responses](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/openai_responses.md): Built-in codec for the OpenAI Responses API. - [Struct OpenAI Responses Codec](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/openai_responses/struct-openairesponsescodec.md): Built-in codec for the OpenAI Responses API. - [Struct OpenAI Responses Streaming Codec](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/openai_responses/struct-openairesponsesstreamingcodec.md): Streaming counterpart to `OpenAIResponsesCodec`. - [Module request](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/request.md): Re-exported normalized LLM request data types. - [Struct Annotated LlmRequest](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/request/struct-annotatedllmrequest.md): Structured view of an LLM request, produced by a Codec from opaque `LlmRequest` content. - [Struct Function Call](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/request/struct-functioncall.md): A function call within a tool call. - [Struct Function Definition](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/request/struct-functiondefinition.md): A function definition within a tool definition. - [Struct Generation Params](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/request/struct-generationparams.md): Normalized generation parameters across providers. - [Struct Open AiImage Url](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/request/struct-openaiimageurl.md): OpenAI image URL payload. - [Struct Tool Call](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/request/struct-toolcall.md): A tool call requested by the assistant. - [Struct Tool Choice Function](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/request/struct-toolchoicefunction.md): A specific tool choice that forces a named function. - [Struct Tool Choice Function Name](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/request/struct-toolchoicefunctionname.md): The name component of a specific tool choice. - [Struct Tool Definition](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/request/struct-tooldefinition.md): A tool definition (function schema) available to the model. - [Enum Content Part](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/request/enum-contentpart.md): A single content part within a multimodal message. - [Enum Message](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/request/enum-message.md): A single message in a conversation, tagged by role. - [Enum Message Content](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/request/enum-messagecontent.md): Message content: either a plain string or multimodal parts array. - [Enum Tool Choice](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/request/enum-toolchoice.md): Tool choice control: how the model should use available tools. - [Module resolve](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/resolve.md): Provider-surface detection and best-effort normalization: the preferred path for turning raw provider JSON into normalized types when no codec annotation is present. - [Enum Provider Surface](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/resolve/enum-providersurface.md): A built-in provider request/response surface. - [Function detect_request_surface](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/resolve/fn-detect-request-surface.md): Detect the request surface from a raw request body by top-level key. - [Function detect_request_surface_with_hint](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/resolve/fn-detect-request-surface-with-hint.md): Like `detect_request_surface`, but a recognized `provider_hint` resolves the one ambiguous shape (an Anthropic request without a top-level `system`, otherwise read as OpenAI Chat). Today, only the exact hints `"anthropic"` and `"anthropic.messages"` change detection; `None` or any other value is ignored and detection stays shape-only. - [Function detect_response_surface](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/resolve/fn-detect-response-surface.md): Detect the response surface from a raw provider response, classifying only when exactly one built-in shape matches (the built-in codecs accept minimal objects, so decode success alone is not a reliable classifier). - [Function normalize_request](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/resolve/fn-normalize-request.md): Best-effort decode of a raw request into `AnnotatedLlmRequest` (fail-open). - [Function normalize_request_with_hint](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/resolve/fn-normalize-request-with-hint.md): Like `normalize_request`, but a recognized `provider_hint` can disambiguate provider request shapes that are otherwise identical. - [Function normalize_response](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/resolve/fn-normalize-response.md): Best-effort decode of a raw response into `AnnotatedLlmResponse` (fail-open). - [Module response](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/response.md): Re-exported normalized LLM response data types and core pricing helpers. - [Struct Annotated LlmResponse](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/response/struct-annotatedllmresponse.md): Structured view of an LLM response, produced by a response codec from raw JSON API output. - [Struct Cost Estimate](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/response/struct-costestimate.md): Normalized LLM response cost. - [Struct Response Tool Call](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/response/struct-responsetoolcall.md): A tool call requested by the model in its response. - [Struct Usage](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/response/struct-usage.md): Token usage statistics from an LLM API response. - [Enum ApiSpecific Response](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/response/enum-apispecificresponse.md): API-specific response data that cannot be normalized across providers. - [Enum Cost Source](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/response/enum-costsource.md): Source of a normalized cost value. - [Enum Finish Reason](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/response/enum-finishreason.md): Normalized reason why the model stopped generating. - [Module streaming](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/streaming.md): Streaming response codecs for the managed LLM execution pipeline. - [Struct SseEvent](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/streaming/struct-sseevent.md): One decoded SSE frame, paired with the parsed `data:` payload. - [Struct SseEvent Decoder](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/streaming/struct-sseeventdecoder.md): Incremental decoder for `text/event-stream` byte streams that yields one JSON object per complete `data:` payload. - [Trait Streaming Codec](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/streaming/trait-streamingcodec.md): Per-provider streaming codec used with `crate::api::llm::llm_stream_call_execute`. - [Module traits](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/traits.md): LLM codec traits for bidirectional request translation. - [Trait LlmCodec](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/traits/trait-llmcodec.md): A bidirectional translator between opaque `LlmRequest` content and structured `AnnotatedLlmRequest`. - [Trait LlmResponse Codec](https://docs.nvidia.com/nemo/relay/v0.5.0/reference/api/rust-library-reference/nemo-relay/codec/traits/trait-llmresponsecodec.md): Decode-only codec for LLM API responses.