Gen AI

GenAI Attributes

This document defines the attributes used to describe telemetry in the context of Generative Artificial Intelligence (GenAI) Models requests and responses.

AttributeTypeDescriptionExamplesStability
gen_ai.operation.namestringThe name of the operation being performed. [1]chat; text_completionExperimental
gen_ai.request.frequency_penaltydoubleThe frequency penalty setting for the GenAI request.0.1Experimental
gen_ai.request.max_tokensintThe maximum number of tokens the model generates for a request.100Experimental
gen_ai.request.modelstringThe name of the GenAI model a request is being made to.gpt-4Experimental
gen_ai.request.presence_penaltydoubleThe presence penalty setting for the GenAI request.0.1Experimental
gen_ai.request.stop_sequencesstring[]List of sequences that the model will use to stop generating further tokens.["forest", "lived"]Experimental
gen_ai.request.temperaturedoubleThe temperature setting for the GenAI request.0.0Experimental
gen_ai.request.top_kdoubleThe top_k sampling setting for the GenAI request.1.0Experimental
gen_ai.request.top_pdoubleThe top_p sampling setting for the GenAI request.1.0Experimental
gen_ai.response.finish_reasonsstring[]Array of reasons the model stopped generating tokens, corresponding to each generation received.["stop"]; ["stop", "length"]Experimental
gen_ai.response.idstringThe unique identifier for the completion.chatcmpl-123Experimental
gen_ai.response.modelstringThe name of the model that generated the response.gpt-4-0613Experimental
gen_ai.systemstringThe Generative AI product as identified by the client or server instrumentation. [2]openaiExperimental
gen_ai.token.typestringThe type of token being counted.input; outputExperimental
gen_ai.usage.input_tokensintThe number of tokens used in the GenAI input (prompt).100Experimental
gen_ai.usage.output_tokensintThe number of tokens used in the GenAI response (completion).180Experimental

[1]: If one of the predefined values applies, but specific system uses a different name it’s RECOMMENDED to document it in the semantic conventions for specific GenAI system and use system-specific name in the instrumentation. If a different name is not documented, instrumentation libraries SHOULD use applicable predefined value.

[2]: The gen_ai.system describes a family of GenAI models with specific model identified by gen_ai.request.model and gen_ai.response.model attributes.

The actual GenAI product may differ from the one identified by the client. For example, when using OpenAI client libraries to communicate with Mistral, the gen_ai.system is set to openai based on the instrumentation’s best knowledge.

For custom model, a custom friendly name SHOULD be used. If none of these options apply, the gen_ai.system SHOULD be set to _OTHER.

gen_ai.operation.name has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.

ValueDescriptionStability
chatChat completion operation such as OpenAI Chat APIExperimental
text_completionText completions operation such as OpenAI Completions API (Legacy)Experimental

gen_ai.system has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.

ValueDescriptionStability
anthropicAnthropicExperimental
cohereCohereExperimental
openaiOpenAIExperimental
vertex_aiVertex AIExperimental

gen_ai.token.type has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.

ValueDescriptionStability
inputInput tokens (prompt, input, etc.)Experimental
outputOutput tokens (completion, response, etc.)Experimental

OpenAI Attributes

Thie group defines attributes for OpenAI.

AttributeTypeDescriptionExamplesStability
gen_ai.openai.request.response_formatstringThe response format that is requested.jsonExperimental
gen_ai.openai.request.seedintRequests with same seed value more likely to return same result.100Experimental
gen_ai.openai.request.service_tierstringThe service tier requested. May be a specific tier, detault, or auto.auto; defaultExperimental
gen_ai.openai.response.service_tierstringThe service tier used for the response.scale; detaultExperimental

gen_ai.openai.request.response_format has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.

ValueDescriptionStability
json_objectJSON object response formatExperimental
json_schemaJSON schema response formatExperimental
textText response formatExperimental

gen_ai.openai.request.service_tier has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.

ValueDescriptionStability
autoThe system will utilize scale tier credits until they are exhausted.Experimental
defaultThe system will utilize the default scale tier.Experimental

Deprecated GenAI Attributes

Describes deprecated gen_ai attributes.

AttributeTypeDescriptionExamplesStability
gen_ai.completionstringDeprecated, use Event API to report completions contents.[{'role': 'assistant', 'content': 'The capital of France is Paris.'}]Deprecated
Removed, no replacement at this time.
gen_ai.promptstringDeprecated, use Event API to report prompt contents.[{'role': 'user', 'content': 'What is the capital of France?'}]Deprecated
Removed, no replacement at this time.
gen_ai.usage.completion_tokensintDeprecated, use gen_ai.usage.output_tokens instead.42Deprecated
Replaced by gen_ai.usage.output_tokens attribute.
gen_ai.usage.prompt_tokensintDeprecated, use gen_ai.usage.input_tokens instead.42Deprecated
Replaced by gen_ai.usage.input_tokens attribute.