microsoft.opentelemetry.a365.core.models.messages module

OTEL gen-ai semantic convention message types.

Defines the structured message format for input/output message tracing, following the OpenTelemetry gen-ai semantic conventions:

class microsoft.opentelemetry.a365.core.models.messages.MessageRole(value)[source]

Bases: Enum

Role of a message participant per OTEL gen-ai semantic conventions.

SYSTEM = 'system'
USER = 'user'
ASSISTANT = 'assistant'
TOOL = 'tool'
class microsoft.opentelemetry.a365.core.models.messages.FinishReason(value)[source]

Bases: Enum

Reason a model stopped generating per OTEL gen-ai semantic conventions.

STOP = 'stop'
LENGTH = 'length'
CONTENT_FILTER = 'content_filter'
TOOL_CALL = 'tool_call'
ERROR = 'error'
class microsoft.opentelemetry.a365.core.models.messages.Modality(value)[source]

Bases: Enum

Media modality for blob, file, and URI parts.

IMAGE = 'image'
VIDEO = 'video'
AUDIO = 'audio'
class microsoft.opentelemetry.a365.core.models.messages.TextPart(content)[source]

Bases: object

Plain text content.

content: str
type: str = 'text'
class microsoft.opentelemetry.a365.core.models.messages.ToolCallRequestPart(name, id=None, arguments=None)[source]

Bases: object

A tool call requested by the model.

name: str
id: str | None = None
arguments: dict[str, object] | list[object] | str | None = None
type: str = 'tool_call'
class microsoft.opentelemetry.a365.core.models.messages.ToolCallResponsePart(id=None, response=None)[source]

Bases: object

Result of a tool call.

id: str | None = None
response: object | None = None
type: str = 'tool_call_response'
class microsoft.opentelemetry.a365.core.models.messages.ReasoningPart(content)[source]

Bases: object

Model reasoning / chain-of-thought content.

content: str
type: str = 'reasoning'
class microsoft.opentelemetry.a365.core.models.messages.BlobPart(modality, content, mime_type=None)[source]

Bases: object

Inline binary data (base64-encoded).

modality: Modality | str
content: str
mime_type: str | None = None
type: str = 'blob'
class microsoft.opentelemetry.a365.core.models.messages.FilePart(modality, file_id, mime_type=None)[source]

Bases: object

Reference to a pre-uploaded file.

modality: Modality | str
file_id: str
mime_type: str | None = None
type: str = 'file'
class microsoft.opentelemetry.a365.core.models.messages.UriPart(modality, uri, mime_type=None)[source]

Bases: object

External URI reference.

modality: Modality | str
uri: str
mime_type: str | None = None
type: str = 'uri'
class microsoft.opentelemetry.a365.core.models.messages.ServerToolCallPart(name, server_tool_call, id=None)[source]

Bases: object

Server-side tool invocation.

name: str
server_tool_call: dict[str, object]
id: str | None = None
type: str = 'server_tool_call'
class microsoft.opentelemetry.a365.core.models.messages.ServerToolCallResponsePart(server_tool_call_response, id=None)[source]

Bases: object

Server-side tool response.

server_tool_call_response: dict[str, object]
id: str | None = None
type: str = 'server_tool_call_response'
class microsoft.opentelemetry.a365.core.models.messages.GenericPart(type, data=<factory>)[source]

Bases: object

Extensible part for custom / future types.

type: str
data: dict[str, object]
microsoft.opentelemetry.a365.core.models.messages.MessagePart

Union of all message part types per OTEL gen-ai semantic conventions.

alias of TextPart | ToolCallRequestPart | ToolCallResponsePart | ReasoningPart | BlobPart | FilePart | UriPart | ServerToolCallPart | ServerToolCallResponsePart | GenericPart

class microsoft.opentelemetry.a365.core.models.messages.ChatMessage(role, parts=<factory>, name=None)[source]

Bases: object

An input message sent to a model (OTEL gen-ai semantic conventions).

role: MessageRole
parts: list[TextPart | ToolCallRequestPart | ToolCallResponsePart | ReasoningPart | BlobPart | FilePart | UriPart | ServerToolCallPart | ServerToolCallResponsePart | GenericPart]
name: str | None = None
class microsoft.opentelemetry.a365.core.models.messages.OutputMessage(role, parts=<factory>, name=None, finish_reason=None)[source]

Bases: ChatMessage

An output message produced by a model (OTEL gen-ai semantic conventions).

finish_reason: str | None = None
microsoft.opentelemetry.a365.core.models.messages.A365_MESSAGE_SCHEMA_VERSION: str = '0.1.0'

Schema version embedded in serialized message payloads.

class microsoft.opentelemetry.a365.core.models.messages.InputMessages(messages=<factory>)[source]

Bases: object

Versioned wrapper for input messages.

messages: list[ChatMessage]
version: str = '0.1.0'
class microsoft.opentelemetry.a365.core.models.messages.OutputMessages(messages=<factory>)[source]

Bases: object

Versioned wrapper for output messages.

messages: list[OutputMessage]
version: str = '0.1.0'
microsoft.opentelemetry.a365.core.models.messages.InputMessagesParam

Accepted input for record_input_messages.

Supports a single string, a list of strings (backward compat), or the versioned wrapper.

alias of str | list[str] | InputMessages

microsoft.opentelemetry.a365.core.models.messages.OutputMessagesParam

Accepted input for record_output_messages.

Supports a single string, a list of strings (backward compat), or the versioned wrapper.

alias of str | list[str] | OutputMessages