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."""