src/agents/voice/pipeline_config.py (17 lines of code) (raw):

from __future__ import annotations from dataclasses import dataclass, field from typing import Any from ..tracing.util import gen_group_id from .model import STTModelSettings, TTSModelSettings, VoiceModelProvider from .models.openai_model_provider import OpenAIVoiceModelProvider @dataclass class VoicePipelineConfig: """Configuration for a `VoicePipeline`.""" model_provider: VoiceModelProvider = field(default_factory=OpenAIVoiceModelProvider) """The voice model provider to use for the pipeline. Defaults to OpenAI.""" tracing_disabled: bool = False """Whether to disable tracing of the pipeline. Defaults to `False`.""" trace_include_sensitive_data: bool = True """Whether to include sensitive data in traces. Defaults to `True`. This is specifically for the voice pipeline, and not for anything that goes on inside your Workflow.""" trace_include_sensitive_audio_data: bool = True """Whether to include audio data in traces. Defaults to `True`.""" workflow_name: str = "Voice Agent" """The name of the workflow to use for tracing. Defaults to `Voice Agent`.""" group_id: str = field(default_factory=gen_group_id) """ A grouping identifier to use for tracing, to link multiple traces from the same conversation or process. If not provided, we will create a random group ID. """ trace_metadata: dict[str, Any] | None = None """ An optional dictionary of additional metadata to include with the trace. """ stt_settings: STTModelSettings = field(default_factory=STTModelSettings) """The settings to use for the STT model.""" tts_settings: TTSModelSettings = field(default_factory=TTSModelSettings) """The settings to use for the TTS model."""