Module livekit.agents.metrics
Functions
def log_metrics(metrics: AgentMetrics, *, logger: logging.Logger | None = None) ‑> None
-
Expand source code
def log_metrics(metrics: AgentMetrics, *, logger: logging.Logger | None = None) -> None: if logger is None: logger = default_logger if isinstance(metrics, LLMMetrics): logger.info( "LLM metrics", extra={ "ttft": round(metrics.ttft, 2), "prompt_tokens": metrics.prompt_tokens, "prompt_cached_tokens": metrics.prompt_cached_tokens, "completion_tokens": metrics.completion_tokens, "tokens_per_second": round(metrics.tokens_per_second, 2), }, ) elif isinstance(metrics, RealtimeModelMetrics): logger.info( "RealtimeModel metrics", extra={ "ttft": round(metrics.ttft, 2), "input_tokens": metrics.input_tokens, "cached_input_tokens": metrics.input_token_details.cached_tokens, "output_tokens": metrics.output_tokens, "total_tokens": metrics.total_tokens, "tokens_per_second": round(metrics.tokens_per_second, 2), }, ) elif isinstance(metrics, TTSMetrics): logger.info( "TTS metrics", extra={ "ttfb": metrics.ttfb, "audio_duration": round(metrics.audio_duration, 2), }, ) elif isinstance(metrics, EOUMetrics): logger.info( "EOU metrics", extra={ "end_of_utterance_delay": round(metrics.end_of_utterance_delay, 2), "transcription_delay": round(metrics.transcription_delay, 2), }, ) elif isinstance(metrics, STTMetrics): logger.info( "STT metrics", extra={ "audio_duration": round(metrics.audio_duration, 2), }, )
Classes
class EOUMetrics (**data: Any)
-
Expand source code
class EOUMetrics(BaseModel): type: Literal["eou_metrics"] = "eou_metrics" timestamp: float end_of_utterance_delay: float """Amount of time between the end of speech from VAD and the decision to end the user's turn. Set to 0.0 if the end of speech was not detected. """ transcription_delay: float """Time taken to obtain the transcript after the end of the user's speech. Set to 0.0 if the end of speech was not detected. """ on_user_turn_completed_delay: float """Time taken to invoke the user's `Agent.on_user_turn_completed` callback.""" last_speaking_time: float """The time the user stopped speaking.""" speech_id: str | None = None
Usage docs: https://docs.pydantic.dev/2.10/concepts/models/
A base class for creating Pydantic models.
Attributes
__class_vars__
- The names of the class variables defined on the model.
__private_attributes__
- Metadata about the private attributes of the model.
__signature__
- The synthesized
__init__
[Signature
][inspect.Signature] of the model. __pydantic_complete__
- Whether model building is completed, or if there are still undefined fields.
__pydantic_core_schema__
- The core schema of the model.
__pydantic_custom_init__
- Whether the model has a custom
__init__
function. __pydantic_decorators__
- Metadata containing the decorators defined on the model.
This replaces
Model.__validators__
andModel.__root_validators__
from Pydantic V1. __pydantic_generic_metadata__
- Metadata for generic models; contains data used for a similar purpose to args, origin, parameters in typing-module generics. May eventually be replaced by these.
__pydantic_parent_namespace__
- Parent namespace of the model, used for automatic rebuilding of models.
__pydantic_post_init__
- The name of the post-init method for the model, if defined.
__pydantic_root_model__
- Whether the model is a [
RootModel
][pydantic.root_model.RootModel]. __pydantic_serializer__
- The
pydantic-core
SchemaSerializer
used to dump instances of the model. __pydantic_validator__
- The
pydantic-core
SchemaValidator
used to validate instances of the model. __pydantic_fields__
- A dictionary of field names and their corresponding [
FieldInfo
][pydantic.fields.FieldInfo] objects. __pydantic_computed_fields__
- A dictionary of computed field names and their corresponding [
ComputedFieldInfo
][pydantic.fields.ComputedFieldInfo] objects. __pydantic_extra__
- A dictionary containing extra values, if [
extra
][pydantic.config.ConfigDict.extra] is set to'allow'
. __pydantic_fields_set__
- The names of fields explicitly set during instantiation.
__pydantic_private__
- Values of private attributes set on the model instance.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError
][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.self
is explicitly positional-only to allowself
as a field name.Ancestors
- pydantic.main.BaseModel
Class variables
var end_of_utterance_delay : float
-
Amount of time between the end of speech from VAD and the decision to end the user's turn. Set to 0.0 if the end of speech was not detected.
var last_speaking_time : float
-
The time the user stopped speaking.
var model_config
var on_user_turn_completed_delay : float
-
Time taken to invoke the user's
Agent.on_user_turn_completed
callback. var speech_id : str | None
var timestamp : float
var transcription_delay : float
-
Time taken to obtain the transcript after the end of the user's speech. Set to 0.0 if the end of speech was not detected.
var type : Literal['eou_metrics']
class LLMMetrics (**data: Any)
-
Expand source code
class LLMMetrics(BaseModel): type: Literal["llm_metrics"] = "llm_metrics" label: str request_id: str timestamp: float duration: float ttft: float cancelled: bool completion_tokens: int prompt_tokens: int prompt_cached_tokens: int total_tokens: int tokens_per_second: float speech_id: str | None = None
Usage docs: https://docs.pydantic.dev/2.10/concepts/models/
A base class for creating Pydantic models.
Attributes
__class_vars__
- The names of the class variables defined on the model.
__private_attributes__
- Metadata about the private attributes of the model.
__signature__
- The synthesized
__init__
[Signature
][inspect.Signature] of the model. __pydantic_complete__
- Whether model building is completed, or if there are still undefined fields.
__pydantic_core_schema__
- The core schema of the model.
__pydantic_custom_init__
- Whether the model has a custom
__init__
function. __pydantic_decorators__
- Metadata containing the decorators defined on the model.
This replaces
Model.__validators__
andModel.__root_validators__
from Pydantic V1. __pydantic_generic_metadata__
- Metadata for generic models; contains data used for a similar purpose to args, origin, parameters in typing-module generics. May eventually be replaced by these.
__pydantic_parent_namespace__
- Parent namespace of the model, used for automatic rebuilding of models.
__pydantic_post_init__
- The name of the post-init method for the model, if defined.
__pydantic_root_model__
- Whether the model is a [
RootModel
][pydantic.root_model.RootModel]. __pydantic_serializer__
- The
pydantic-core
SchemaSerializer
used to dump instances of the model. __pydantic_validator__
- The
pydantic-core
SchemaValidator
used to validate instances of the model. __pydantic_fields__
- A dictionary of field names and their corresponding [
FieldInfo
][pydantic.fields.FieldInfo] objects. __pydantic_computed_fields__
- A dictionary of computed field names and their corresponding [
ComputedFieldInfo
][pydantic.fields.ComputedFieldInfo] objects. __pydantic_extra__
- A dictionary containing extra values, if [
extra
][pydantic.config.ConfigDict.extra] is set to'allow'
. __pydantic_fields_set__
- The names of fields explicitly set during instantiation.
__pydantic_private__
- Values of private attributes set on the model instance.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError
][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.self
is explicitly positional-only to allowself
as a field name.Ancestors
- pydantic.main.BaseModel
Class variables
var cancelled : bool
var completion_tokens : int
var duration : float
var label : str
var model_config
var prompt_cached_tokens : int
var prompt_tokens : int
var request_id : str
var speech_id : str | None
var timestamp : float
var tokens_per_second : float
var total_tokens : int
var ttft : float
var type : Literal['llm_metrics']
class RealtimeModelMetrics (**data: Any)
-
Expand source code
class RealtimeModelMetrics(BaseModel): class CachedTokenDetails(BaseModel): audio_tokens: int text_tokens: int image_tokens: int class InputTokenDetails(BaseModel): audio_tokens: int text_tokens: int image_tokens: int cached_tokens: int cached_tokens_details: RealtimeModelMetrics.CachedTokenDetails | None class OutputTokenDetails(BaseModel): text_tokens: int audio_tokens: int image_tokens: int type: Literal["realtime_model_metrics"] = "realtime_model_metrics" label: str request_id: str timestamp: float """The timestamp of the response creation.""" duration: float """The duration of the response from created to done in seconds.""" ttft: float """Time to first audio token in seconds. -1 if no audio token was sent.""" cancelled: bool """Whether the request was cancelled.""" input_tokens: int """The number of input tokens used in the Response, including text and audio tokens.""" output_tokens: int """The number of output tokens sent in the Response, including text and audio tokens.""" total_tokens: int """The total number of tokens in the Response.""" tokens_per_second: float """The number of tokens per second.""" input_token_details: InputTokenDetails """Details about the input tokens used in the Response.""" output_token_details: OutputTokenDetails """Details about the output tokens used in the Response."""
Usage docs: https://docs.pydantic.dev/2.10/concepts/models/
A base class for creating Pydantic models.
Attributes
__class_vars__
- The names of the class variables defined on the model.
__private_attributes__
- Metadata about the private attributes of the model.
__signature__
- The synthesized
__init__
[Signature
][inspect.Signature] of the model. __pydantic_complete__
- Whether model building is completed, or if there are still undefined fields.
__pydantic_core_schema__
- The core schema of the model.
__pydantic_custom_init__
- Whether the model has a custom
__init__
function. __pydantic_decorators__
- Metadata containing the decorators defined on the model.
This replaces
Model.__validators__
andModel.__root_validators__
from Pydantic V1. __pydantic_generic_metadata__
- Metadata for generic models; contains data used for a similar purpose to args, origin, parameters in typing-module generics. May eventually be replaced by these.
__pydantic_parent_namespace__
- Parent namespace of the model, used for automatic rebuilding of models.
__pydantic_post_init__
- The name of the post-init method for the model, if defined.
__pydantic_root_model__
- Whether the model is a [
RootModel
][pydantic.root_model.RootModel]. __pydantic_serializer__
- The
pydantic-core
SchemaSerializer
used to dump instances of the model. __pydantic_validator__
- The
pydantic-core
SchemaValidator
used to validate instances of the model. __pydantic_fields__
- A dictionary of field names and their corresponding [
FieldInfo
][pydantic.fields.FieldInfo] objects. __pydantic_computed_fields__
- A dictionary of computed field names and their corresponding [
ComputedFieldInfo
][pydantic.fields.ComputedFieldInfo] objects. __pydantic_extra__
- A dictionary containing extra values, if [
extra
][pydantic.config.ConfigDict.extra] is set to'allow'
. __pydantic_fields_set__
- The names of fields explicitly set during instantiation.
__pydantic_private__
- Values of private attributes set on the model instance.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError
][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.self
is explicitly positional-only to allowself
as a field name.Ancestors
- pydantic.main.BaseModel
Class variables
var CachedTokenDetails
-
Usage docs: https://docs.pydantic.dev/2.10/concepts/models/
A base class for creating Pydantic models.
Attributes
__class_vars__
- The names of the class variables defined on the model.
__private_attributes__
- Metadata about the private attributes of the model.
__signature__
- The synthesized
__init__
[Signature
][inspect.Signature] of the model. __pydantic_complete__
- Whether model building is completed, or if there are still undefined fields.
__pydantic_core_schema__
- The core schema of the model.
__pydantic_custom_init__
- Whether the model has a custom
__init__
function. __pydantic_decorators__
- Metadata containing the decorators defined on the model.
This replaces
Model.__validators__
andModel.__root_validators__
from Pydantic V1. __pydantic_generic_metadata__
- Metadata for generic models; contains data used for a similar purpose to args, origin, parameters in typing-module generics. May eventually be replaced by these.
__pydantic_parent_namespace__
- Parent namespace of the model, used for automatic rebuilding of models.
__pydantic_post_init__
- The name of the post-init method for the model, if defined.
__pydantic_root_model__
- Whether the model is a [
RootModel
][pydantic.root_model.RootModel]. __pydantic_serializer__
- The
pydantic-core
SchemaSerializer
used to dump instances of the model. __pydantic_validator__
- The
pydantic-core
SchemaValidator
used to validate instances of the model. __pydantic_fields__
- A dictionary of field names and their corresponding [
FieldInfo
][pydantic.fields.FieldInfo] objects. __pydantic_computed_fields__
- A dictionary of computed field names and their corresponding [
ComputedFieldInfo
][pydantic.fields.ComputedFieldInfo] objects. __pydantic_extra__
- A dictionary containing extra values, if [
extra
][pydantic.config.ConfigDict.extra] is set to'allow'
. __pydantic_fields_set__
- The names of fields explicitly set during instantiation.
__pydantic_private__
- Values of private attributes set on the model instance.
var InputTokenDetails
-
Usage docs: https://docs.pydantic.dev/2.10/concepts/models/
A base class for creating Pydantic models.
Attributes
__class_vars__
- The names of the class variables defined on the model.
__private_attributes__
- Metadata about the private attributes of the model.
__signature__
- The synthesized
__init__
[Signature
][inspect.Signature] of the model. __pydantic_complete__
- Whether model building is completed, or if there are still undefined fields.
__pydantic_core_schema__
- The core schema of the model.
__pydantic_custom_init__
- Whether the model has a custom
__init__
function. __pydantic_decorators__
- Metadata containing the decorators defined on the model.
This replaces
Model.__validators__
andModel.__root_validators__
from Pydantic V1. __pydantic_generic_metadata__
- Metadata for generic models; contains data used for a similar purpose to args, origin, parameters in typing-module generics. May eventually be replaced by these.
__pydantic_parent_namespace__
- Parent namespace of the model, used for automatic rebuilding of models.
__pydantic_post_init__
- The name of the post-init method for the model, if defined.
__pydantic_root_model__
- Whether the model is a [
RootModel
][pydantic.root_model.RootModel]. __pydantic_serializer__
- The
pydantic-core
SchemaSerializer
used to dump instances of the model. __pydantic_validator__
- The
pydantic-core
SchemaValidator
used to validate instances of the model. __pydantic_fields__
- A dictionary of field names and their corresponding [
FieldInfo
][pydantic.fields.FieldInfo] objects. __pydantic_computed_fields__
- A dictionary of computed field names and their corresponding [
ComputedFieldInfo
][pydantic.fields.ComputedFieldInfo] objects. __pydantic_extra__
- A dictionary containing extra values, if [
extra
][pydantic.config.ConfigDict.extra] is set to'allow'
. __pydantic_fields_set__
- The names of fields explicitly set during instantiation.
__pydantic_private__
- Values of private attributes set on the model instance.
var OutputTokenDetails
-
Usage docs: https://docs.pydantic.dev/2.10/concepts/models/
A base class for creating Pydantic models.
Attributes
__class_vars__
- The names of the class variables defined on the model.
__private_attributes__
- Metadata about the private attributes of the model.
__signature__
- The synthesized
__init__
[Signature
][inspect.Signature] of the model. __pydantic_complete__
- Whether model building is completed, or if there are still undefined fields.
__pydantic_core_schema__
- The core schema of the model.
__pydantic_custom_init__
- Whether the model has a custom
__init__
function. __pydantic_decorators__
- Metadata containing the decorators defined on the model.
This replaces
Model.__validators__
andModel.__root_validators__
from Pydantic V1. __pydantic_generic_metadata__
- Metadata for generic models; contains data used for a similar purpose to args, origin, parameters in typing-module generics. May eventually be replaced by these.
__pydantic_parent_namespace__
- Parent namespace of the model, used for automatic rebuilding of models.
__pydantic_post_init__
- The name of the post-init method for the model, if defined.
__pydantic_root_model__
- Whether the model is a [
RootModel
][pydantic.root_model.RootModel]. __pydantic_serializer__
- The
pydantic-core
SchemaSerializer
used to dump instances of the model. __pydantic_validator__
- The
pydantic-core
SchemaValidator
used to validate instances of the model. __pydantic_fields__
- A dictionary of field names and their corresponding [
FieldInfo
][pydantic.fields.FieldInfo] objects. __pydantic_computed_fields__
- A dictionary of computed field names and their corresponding [
ComputedFieldInfo
][pydantic.fields.ComputedFieldInfo] objects. __pydantic_extra__
- A dictionary containing extra values, if [
extra
][pydantic.config.ConfigDict.extra] is set to'allow'
. __pydantic_fields_set__
- The names of fields explicitly set during instantiation.
__pydantic_private__
- Values of private attributes set on the model instance.
var cancelled : bool
-
Whether the request was cancelled.
var duration : float
-
The duration of the response from created to done in seconds.
var input_token_details : livekit.agents.metrics.base.RealtimeModelMetrics.InputTokenDetails
-
Details about the input tokens used in the Response.
var input_tokens : int
-
The number of input tokens used in the Response, including text and audio tokens.
var label : str
var model_config
var output_token_details : livekit.agents.metrics.base.RealtimeModelMetrics.OutputTokenDetails
-
Details about the output tokens used in the Response.
var output_tokens : int
-
The number of output tokens sent in the Response, including text and audio tokens.
var request_id : str
var timestamp : float
-
The timestamp of the response creation.
var tokens_per_second : float
-
The number of tokens per second.
var total_tokens : int
-
The total number of tokens in the Response.
var ttft : float
-
Time to first audio token in seconds. -1 if no audio token was sent.
var type : Literal['realtime_model_metrics']
class STTMetrics (**data: Any)
-
Expand source code
class STTMetrics(BaseModel): type: Literal["stt_metrics"] = "stt_metrics" label: str request_id: str timestamp: float duration: float """The request duration in seconds, 0.0 if the STT is streaming.""" audio_duration: float """The duration of the pushed audio in seconds.""" streamed: bool """Whether the STT is streaming (e.g using websocket)."""
Usage docs: https://docs.pydantic.dev/2.10/concepts/models/
A base class for creating Pydantic models.
Attributes
__class_vars__
- The names of the class variables defined on the model.
__private_attributes__
- Metadata about the private attributes of the model.
__signature__
- The synthesized
__init__
[Signature
][inspect.Signature] of the model. __pydantic_complete__
- Whether model building is completed, or if there are still undefined fields.
__pydantic_core_schema__
- The core schema of the model.
__pydantic_custom_init__
- Whether the model has a custom
__init__
function. __pydantic_decorators__
- Metadata containing the decorators defined on the model.
This replaces
Model.__validators__
andModel.__root_validators__
from Pydantic V1. __pydantic_generic_metadata__
- Metadata for generic models; contains data used for a similar purpose to args, origin, parameters in typing-module generics. May eventually be replaced by these.
__pydantic_parent_namespace__
- Parent namespace of the model, used for automatic rebuilding of models.
__pydantic_post_init__
- The name of the post-init method for the model, if defined.
__pydantic_root_model__
- Whether the model is a [
RootModel
][pydantic.root_model.RootModel]. __pydantic_serializer__
- The
pydantic-core
SchemaSerializer
used to dump instances of the model. __pydantic_validator__
- The
pydantic-core
SchemaValidator
used to validate instances of the model. __pydantic_fields__
- A dictionary of field names and their corresponding [
FieldInfo
][pydantic.fields.FieldInfo] objects. __pydantic_computed_fields__
- A dictionary of computed field names and their corresponding [
ComputedFieldInfo
][pydantic.fields.ComputedFieldInfo] objects. __pydantic_extra__
- A dictionary containing extra values, if [
extra
][pydantic.config.ConfigDict.extra] is set to'allow'
. __pydantic_fields_set__
- The names of fields explicitly set during instantiation.
__pydantic_private__
- Values of private attributes set on the model instance.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError
][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.self
is explicitly positional-only to allowself
as a field name.Ancestors
- pydantic.main.BaseModel
Class variables
var audio_duration : float
-
The duration of the pushed audio in seconds.
var duration : float
-
The request duration in seconds, 0.0 if the STT is streaming.
var label : str
var model_config
var request_id : str
var streamed : bool
-
Whether the STT is streaming (e.g using websocket).
var timestamp : float
var type : Literal['stt_metrics']
class TTSMetrics (**data: Any)
-
Expand source code
class TTSMetrics(BaseModel): type: Literal["tts_metrics"] = "tts_metrics" label: str request_id: str timestamp: float ttfb: float duration: float audio_duration: float cancelled: bool characters_count: int streamed: bool segment_id: str | None = None speech_id: str | None = None
Usage docs: https://docs.pydantic.dev/2.10/concepts/models/
A base class for creating Pydantic models.
Attributes
__class_vars__
- The names of the class variables defined on the model.
__private_attributes__
- Metadata about the private attributes of the model.
__signature__
- The synthesized
__init__
[Signature
][inspect.Signature] of the model. __pydantic_complete__
- Whether model building is completed, or if there are still undefined fields.
__pydantic_core_schema__
- The core schema of the model.
__pydantic_custom_init__
- Whether the model has a custom
__init__
function. __pydantic_decorators__
- Metadata containing the decorators defined on the model.
This replaces
Model.__validators__
andModel.__root_validators__
from Pydantic V1. __pydantic_generic_metadata__
- Metadata for generic models; contains data used for a similar purpose to args, origin, parameters in typing-module generics. May eventually be replaced by these.
__pydantic_parent_namespace__
- Parent namespace of the model, used for automatic rebuilding of models.
__pydantic_post_init__
- The name of the post-init method for the model, if defined.
__pydantic_root_model__
- Whether the model is a [
RootModel
][pydantic.root_model.RootModel]. __pydantic_serializer__
- The
pydantic-core
SchemaSerializer
used to dump instances of the model. __pydantic_validator__
- The
pydantic-core
SchemaValidator
used to validate instances of the model. __pydantic_fields__
- A dictionary of field names and their corresponding [
FieldInfo
][pydantic.fields.FieldInfo] objects. __pydantic_computed_fields__
- A dictionary of computed field names and their corresponding [
ComputedFieldInfo
][pydantic.fields.ComputedFieldInfo] objects. __pydantic_extra__
- A dictionary containing extra values, if [
extra
][pydantic.config.ConfigDict.extra] is set to'allow'
. __pydantic_fields_set__
- The names of fields explicitly set during instantiation.
__pydantic_private__
- Values of private attributes set on the model instance.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError
][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.self
is explicitly positional-only to allowself
as a field name.Ancestors
- pydantic.main.BaseModel
Class variables
var audio_duration : float
var cancelled : bool
var characters_count : int
var duration : float
var label : str
var model_config
var request_id : str
var segment_id : str | None
var speech_id : str | None
var streamed : bool
var timestamp : float
var ttfb : float
var type : Literal['tts_metrics']
class UsageCollector
-
Expand source code
class UsageCollector: def __init__(self) -> None: self._summary = UsageSummary() def __call__(self, metrics: AgentMetrics) -> None: self.collect(metrics) def collect(self, metrics: AgentMetrics) -> None: if isinstance(metrics, LLMMetrics): self._summary.llm_prompt_tokens += metrics.prompt_tokens self._summary.llm_prompt_cached_tokens += metrics.prompt_cached_tokens self._summary.llm_completion_tokens += metrics.completion_tokens elif isinstance(metrics, RealtimeModelMetrics): self._summary.llm_input_audio_tokens += metrics.input_token_details.audio_tokens self._summary.llm_output_audio_tokens += metrics.output_token_details.audio_tokens self._summary.llm_prompt_tokens += metrics.input_tokens self._summary.llm_prompt_cached_tokens += metrics.input_token_details.cached_tokens self._summary.llm_completion_tokens += metrics.output_tokens elif isinstance(metrics, TTSMetrics): self._summary.tts_characters_count += metrics.characters_count self._summary.tts_audio_duration += metrics.audio_duration elif isinstance(metrics, STTMetrics): self._summary.stt_audio_duration += metrics.audio_duration def get_summary(self) -> UsageSummary: return deepcopy(self._summary)
Methods
def collect(self,
metrics: livekit.agents.metrics.base.STTMetrics | livekit.agents.metrics.base.LLMMetrics | livekit.agents.metrics.base.TTSMetrics | livekit.agents.metrics.base.VADMetrics | livekit.agents.metrics.base.EOUMetrics | livekit.agents.metrics.base.RealtimeModelMetrics) ‑> None-
Expand source code
def collect(self, metrics: AgentMetrics) -> None: if isinstance(metrics, LLMMetrics): self._summary.llm_prompt_tokens += metrics.prompt_tokens self._summary.llm_prompt_cached_tokens += metrics.prompt_cached_tokens self._summary.llm_completion_tokens += metrics.completion_tokens elif isinstance(metrics, RealtimeModelMetrics): self._summary.llm_input_audio_tokens += metrics.input_token_details.audio_tokens self._summary.llm_output_audio_tokens += metrics.output_token_details.audio_tokens self._summary.llm_prompt_tokens += metrics.input_tokens self._summary.llm_prompt_cached_tokens += metrics.input_token_details.cached_tokens self._summary.llm_completion_tokens += metrics.output_tokens elif isinstance(metrics, TTSMetrics): self._summary.tts_characters_count += metrics.characters_count self._summary.tts_audio_duration += metrics.audio_duration elif isinstance(metrics, STTMetrics): self._summary.stt_audio_duration += metrics.audio_duration
def get_summary(self) ‑> livekit.agents.metrics.usage_collector.UsageSummary
-
Expand source code
def get_summary(self) -> UsageSummary: return deepcopy(self._summary)
class UsageSummary (llm_prompt_tokens: int = 0,
llm_prompt_cached_tokens: int = 0,
llm_input_audio_tokens: int = 0,
llm_completion_tokens: int = 0,
llm_output_audio_tokens: int = 0,
tts_characters_count: int = 0,
tts_audio_duration: float = 0.0,
stt_audio_duration: float = 0.0)-
Expand source code
@dataclass class UsageSummary: llm_prompt_tokens: int = 0 llm_prompt_cached_tokens: int = 0 llm_input_audio_tokens: int = 0 llm_completion_tokens: int = 0 llm_output_audio_tokens: int = 0 tts_characters_count: int = 0 tts_audio_duration: float = 0.0 stt_audio_duration: float = 0.0
UsageSummary(llm_prompt_tokens: int = 0, llm_prompt_cached_tokens: int = 0, llm_input_audio_tokens: int = 0, llm_completion_tokens: int = 0, llm_output_audio_tokens: int = 0, tts_characters_count: int = 0, tts_audio_duration: float = 0.0, stt_audio_duration: float = 0.0)
Instance variables
var llm_completion_tokens : int
var llm_input_audio_tokens : int
var llm_output_audio_tokens : int
var llm_prompt_cached_tokens : int
var llm_prompt_tokens : int
var stt_audio_duration : float
var tts_audio_duration : float
var tts_characters_count : int
class VADMetrics (**data: Any)
-
Expand source code
class VADMetrics(BaseModel): type: Literal["vad_metrics"] = "vad_metrics" label: str timestamp: float idle_time: float inference_duration_total: float inference_count: int
Usage docs: https://docs.pydantic.dev/2.10/concepts/models/
A base class for creating Pydantic models.
Attributes
__class_vars__
- The names of the class variables defined on the model.
__private_attributes__
- Metadata about the private attributes of the model.
__signature__
- The synthesized
__init__
[Signature
][inspect.Signature] of the model. __pydantic_complete__
- Whether model building is completed, or if there are still undefined fields.
__pydantic_core_schema__
- The core schema of the model.
__pydantic_custom_init__
- Whether the model has a custom
__init__
function. __pydantic_decorators__
- Metadata containing the decorators defined on the model.
This replaces
Model.__validators__
andModel.__root_validators__
from Pydantic V1. __pydantic_generic_metadata__
- Metadata for generic models; contains data used for a similar purpose to args, origin, parameters in typing-module generics. May eventually be replaced by these.
__pydantic_parent_namespace__
- Parent namespace of the model, used for automatic rebuilding of models.
__pydantic_post_init__
- The name of the post-init method for the model, if defined.
__pydantic_root_model__
- Whether the model is a [
RootModel
][pydantic.root_model.RootModel]. __pydantic_serializer__
- The
pydantic-core
SchemaSerializer
used to dump instances of the model. __pydantic_validator__
- The
pydantic-core
SchemaValidator
used to validate instances of the model. __pydantic_fields__
- A dictionary of field names and their corresponding [
FieldInfo
][pydantic.fields.FieldInfo] objects. __pydantic_computed_fields__
- A dictionary of computed field names and their corresponding [
ComputedFieldInfo
][pydantic.fields.ComputedFieldInfo] objects. __pydantic_extra__
- A dictionary containing extra values, if [
extra
][pydantic.config.ConfigDict.extra] is set to'allow'
. __pydantic_fields_set__
- The names of fields explicitly set during instantiation.
__pydantic_private__
- Values of private attributes set on the model instance.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError
][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.self
is explicitly positional-only to allowself
as a field name.Ancestors
- pydantic.main.BaseModel
Class variables
var idle_time : float
var inference_count : int
var inference_duration_total : float
var label : str
var model_config
var timestamp : float
var type : Literal['vad_metrics']