ReqLLM.OpenTelemetry.SemConv (ReqLLM v1.12.0)

View Source

Spec name tables for the OpenTelemetry GenAI semantic conventions — gen_ai.provider.name, gen_ai.operation.name, gen_ai.output.type, and the canonical span name.

Shared between ReqLLM.OpenTelemetry and ReqLLM.Telemetry.OpenTelemetry so they translate ReqLLM atoms to spec enum values identically.

iex> ReqLLM.OpenTelemetry.SemConv.provider_name(:amazon_bedrock)
"aws.bedrock"

iex> ReqLLM.OpenTelemetry.SemConv.operation_name(:embedding)
"embeddings"

iex> ReqLLM.OpenTelemetry.SemConv.span_name(:chat, "gpt-5")
"chat gpt-5"

Providers and operations not covered by the spec stringify their atom name unchanged.

Summary

Functions

operation_name(operation)

@spec operation_name(any()) :: String.t()

output_type(operation)

@spec output_type(any()) :: String.t() | nil

provider_name(provider)

@spec provider_name(any()) :: String.t() | nil

span_name(operation, model_id)

@spec span_name(any(), String.t() | nil) :: String.t()