TurnStartStrategies: set user and bot strategies defaults if None
This commit is contained in:
@@ -47,14 +47,7 @@ from pipecat.pipeline.base_task import BasePipelineTask, PipelineTaskParams
|
||||
from pipecat.pipeline.pipeline import Pipeline, PipelineSink, PipelineSource
|
||||
from pipecat.pipeline.task_observer import TaskObserver
|
||||
from pipecat.processors.frame_processor import FrameDirection, FrameProcessor, FrameProcessorSetup
|
||||
from pipecat.turns.bot.transcription_bot_turn_start_strategy import (
|
||||
TranscriptionBotTurnStartStrategy,
|
||||
)
|
||||
from pipecat.turns.turn_start_strategies import TurnStartStrategies
|
||||
from pipecat.turns.user.transcription_user_turn_start_strategy import (
|
||||
TranscriptionUserTurnStartStrategy,
|
||||
)
|
||||
from pipecat.turns.user.vad_user_turn_start_strategy import VADUserTurnStartStrategy
|
||||
from pipecat.utils.asyncio.task_manager import BaseTaskManager, TaskManager, TaskManagerParams
|
||||
from pipecat.utils.tracing.setup import is_tracing_available
|
||||
from pipecat.utils.tracing.turn_trace_observer import TurnTraceObserver
|
||||
@@ -295,10 +288,7 @@ class PipelineTask(BasePipelineTask):
|
||||
|
||||
# Initialize default user and bot turn start strategies.
|
||||
if not self._params.turn_start_strategies:
|
||||
self._params.turn_start_strategies = TurnStartStrategies(
|
||||
user=[VADUserTurnStartStrategy(), TranscriptionUserTurnStartStrategy()],
|
||||
bot=[TranscriptionBotTurnStartStrategy()],
|
||||
)
|
||||
self._params.turn_start_strategies = TurnStartStrategies()
|
||||
|
||||
self._finished = False
|
||||
self._cancelled = False
|
||||
|
||||
@@ -7,10 +7,17 @@
|
||||
"""Turn start strategy configuration."""
|
||||
|
||||
from dataclasses import dataclass
|
||||
from typing import List
|
||||
from typing import List, Optional
|
||||
|
||||
from pipecat.turns.bot.base_bot_turn_start_strategy import BaseBotTurnStartStrategy
|
||||
from pipecat.turns.bot.transcription_bot_turn_start_strategy import (
|
||||
TranscriptionBotTurnStartStrategy,
|
||||
)
|
||||
from pipecat.turns.user.base_user_turn_start_strategy import BaseUserTurnStartStrategy
|
||||
from pipecat.turns.user.transcription_user_turn_start_strategy import (
|
||||
TranscriptionUserTurnStartStrategy,
|
||||
)
|
||||
from pipecat.turns.user.vad_user_turn_start_strategy import VADUserTurnStartStrategy
|
||||
|
||||
|
||||
@dataclass
|
||||
@@ -20,12 +27,25 @@ class TurnStartStrategies:
|
||||
This class groups the configured turn start strategies for both the user
|
||||
and the bot.
|
||||
|
||||
If no strategies are specified for the user or the bot, the following
|
||||
defaults are used:
|
||||
|
||||
user: [VADUserTurnStartStrategy, TranscriptionUserTurnStartStrategy]
|
||||
bot: [TranscriptionBotTurnStartStrategy]
|
||||
|
||||
Attributes:
|
||||
user: A list of user turn start strategies used to detect when the
|
||||
user starts speaking.
|
||||
bot: A list of bot turn start strategies used to decide when the bot
|
||||
should start speaking.
|
||||
|
||||
"""
|
||||
|
||||
user: List[BaseUserTurnStartStrategy]
|
||||
bot: List[BaseBotTurnStartStrategy]
|
||||
user: Optional[List[BaseUserTurnStartStrategy]] = None
|
||||
bot: Optional[List[BaseBotTurnStartStrategy]] = None
|
||||
|
||||
def __post_init__(self):
|
||||
if not self.user:
|
||||
self.user = [VADUserTurnStartStrategy(), TranscriptionUserTurnStartStrategy()]
|
||||
if not self.bot:
|
||||
self.bot = [TranscriptionBotTurnStartStrategy()]
|
||||
|
||||
Reference in New Issue
Block a user